#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;
}
#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;
}
應該是陣列大小的關係。
還有記得 每一行的最後一個數字後並無空白。
應該是 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,只是你剛好沒遇到