#13948: 大神求救 DEV C++ 成功執行 網站顯示記憶體錯誤


player963852@gmail.com (謝立愷)

School : Not Student
ID : 79656
IP address : []
Last Login :
2018-05-09 23:48:42
b965. 第 2 題 矩陣轉換 -- APCS大學程式設計先修檢測(2016/03/05) | From: [123.192.38.45] | Post Date : 2018-05-19 20:35

#include <iostream>
using namespace std;
int main(){
int R, C, M,x;
cin>>R>>C>>M;
int A[R][C],B[R][C],MM[M];
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
cin>>A[r][c];
}
}
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
B[r][c]=A[r][c];
}
}
for(int m=1;m<=M;++m){
cin>>MM[m];
}
for(int a=1;a<=M;++a){
if(MM[a]==1){
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
A[r][C-c+1]=B[r][c];
}
}
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
B[r][c]=A[r][c];
}
}
}
else{
x=R;R=C;C=x;
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
A[r][c]=B[C-c+1][r];
}
}
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
B[r][c]=A[r][c];
}
}
}
}
cout<<R<<" "<<C<<endl;
for(int r=R;r>0;--r){
for(int c=C;c>0;--c){
cout<<A[r][c]<<" ";
}
cout<<endl;
}
return 0;
}

 
#13954: Re:大神求救 DEV C++ 成功執行 網站顯示記憶體錯誤


a0970580085@gmail.com (不會寫程式)

School : 義守大學
ID : 74647
IP address : [124.218.71.3]
Last Login :
2019-09-26 01:16:25
b965. 第 2 題 矩陣轉換 -- APCS大學程式設計先修檢測(2016/03/05) | From: [111.254.211.203] | Post Date : 2018-05-20 11:13

#include
using namespace std;
int main(){
int R, C, M,x;
cin>>R>>C>>M;
int A[R][C],B[R][C],MM[M];
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
cin>>A[r][c];
}
}
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
B[r][c]=A[r][c];
}
}
for(int m=1;m<=M;++m){
cin>>MM[m];
}
for(int a=1;a<=M;++a){
if(MM[a]==1){
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
A[r][C-c+1]=B[r][c];
}
}
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
B[r][c]=A[r][c];
}
}
}
else{
x=R;R=C;C=x;
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
A[r][c]=B[C-c+1][r];
}
}
for(int r=1;r<=R;++r){
for(int c=1;c<=C;++c){
B[r][c]=A[r][c];
}
}
}
}
cout<<R<<" "<<C<<endl;
for(int r=R;r>0;--r){
for(int c=C;c>0;--c){
cout<<A[r][c]<<" ";
}
cout<<endl;
}
return 0;
}



應該是陣列大小的關係。

還有記得 每一行的最後一個數字後並無空白。

 
#13956: Re:大神求救 DEV C++ 成功執行 網站顯示記憶體錯誤


kkmomo (kkmomo)

School : Not Student
ID : 29247
IP address : [118.163.30.15]
Last Login :
2019-07-30 10:35:11
b965. 第 2 題 矩陣轉換 -- APCS大學程式設計先修檢測(2016/03/05) | From: [118.166.122.118] | Post Date : 2018-05-20 14:29

應該是 index out of array bounds

int arr[X];

arr 範圍是從  0 到 X - 1

我用 g++ 編譯你的 code 來跑範例的 input 也是沒報錯

原因可以參考:

https://stackoverflow.com/questions/1239938/accessing-an-array-out-of-bounds-gives-no-error-why

https://zh.wikipedia.org/wiki/%E6%9C%AA%E5%AE%9A%E4%B9%89%E8%A1%8C%E4%B8%BA

 

未定義行為並不一定會造成program crash,有時沒出現錯誤不代表沒bug,只是你剛好沒遇到

 
ZeroJudge Forum