#23812: 為什麼用Dev C都可以測試正確 但用這邊測就全部溢位


youngyoung930512@gmail.com (瑀Yu)


 #include <bits/stdc++.h>

using namespace std;

int main() {

int N,M,total,flag=0;

cin>>N>>M;

int num[N][M];

int Max[N];

for(int i=0;i<N;i++){

for(int j=0;j<M;j++){

cin>>num[i][j];

}

}

for(int a=0;a<N;a++){

for(int b=0;b<M;b++){

if(num[a][b]>=num[a][b-1]){

Max[a]=num[a][b];

}

}

}

 

for(int a=0;a<N;a++){

total=total+Max[a];

}

cout<<total<<endl;

for(int a=0;a<N;a++){

for(int b=0;b<M;b++){

if(total%Max[a]==0){

cout<<Max[a]<<" ";

flag=1;

break;

}

}

}

if(flag==0){

cout<<"-1";

}

return 0;

}

 

自己測都對

用這邊就全部錯qwq

#25327: Re:為什麼用Dev C都可以測試正確 但用這邊測就全部溢位


abs71507@gmail.com (46 5)


 #include <bits/stdc++.h>

using namespace std;

int main() {

int N,M,total,flag=0;

cin>>N>>M;

int num[N][M];

int Max[N];

for(int i=0;i<N;i++){

for(int j=0;j<M;j++){

cin>>num[i][j];

}

}

for(int a=0;a<N;a++){

for(int b=0;b<M;b++){

if(num[a][b]>=num[a][b-1]){

/*

    b從0開始計

     例如a=0,b=0 -> num[0][-1]

     這樣會造成記憶體區段錯誤

*/

Max[a]=num[a][b];

}

}

}

 

for(int a=0;a<N;a++){

total=total+Max[a];

}

cout<<total<<endl;

for(int a=0;a<N;a++){

for(int b=0;b<M;b++){

if(total%Max[a]==0){

cout<<Max[a]<<" ";

flag=1;

break;

}

}

}

if(flag==0){

cout<<"-1";

}

return 0;

}

 

自己測都對

用這邊就全部錯qwq