【发布时间】:2020-12-21 15:13:41
【问题描述】:
在我的程序中:
int row,col,srow,scol,erow,ecol;
while(scanf("%d %d %d %d %d %d",&row,&col,&srow,&scol,&erow,&ecol)!=EOF){
int m[row][col];
...
}
在while循环中我使用scanf输入值,值为4 5 6,输入有效。
for(int x=0;x<row;x++){
for(int y=0;y<col;y++){
scanf("%d",&m[row][col]);
}
}
但是当我尝试输出值时,值变了,变成了6422232 6422228 6422224,我的printf代码是这样的:
for(int a=srow;a<=erow;a++){
for(int b=scol;b<ecol;b++){
printf("%d ",m[a][b]);
}
printf("%d\n",m[a][ecol]);
}
为什么会出现问题?
【问题讨论】:
-
总是一个错误:不测试 scanf() 的返回值。
-
在第二个 sn-p 迭代变量是 x 和 y,但您正在扫描到 row[col]