请问以下代码为什么错?报错看不懂。谢谢
#include
using namespace std;
int n,m;
int main(){
cin>>n>>m;
int jz[n][m];
for(int x=0;x<=n;x++){
for(int y=0;y<=m;y++)
cin>>jz[x][y];
cout>>"x">>x>>endl>>"y">>y>>endl>>"数">>jz[x][y];
}
}
两个for循环的结束条件改一下, x=n,或者y=m会访问jz数组越界,因为jz行最大下标是n-1,列最大下标是m-1.
#include<bits/stdc++.h>
using namespace std;
int n,m;
int main(){
cin>>n>>m;
int jz[n][m];
for(int x=0;x<n;x++){
for(int y=0;y<m;y++)
cin>>jz[x][y];
cout>>"x">>x>>endl>>"y">>y>>endl>>"数">>jz[x][y];
}
}
数组大小是n行m列,你的for循环只能到x<n和y<m,是不可以相等的,如果x=n或者y=m,就越界了,因为下标从0开始,最大下标值比数组大小要小1