#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main(){
int a[5][5] = {};
int m, n;
int i,j,temp;
for(i = 0;i < 5;i++)
{
for(j = 0;j < 5;j++)
{
scanf("%d",a[i][j]);
printf("%d\n",&a[i][j]);
}
printf("\n");
}
printf("输入交换行m,n的值:\n");
scanf("%d,%d",&m,&n); //注意要交换的行数,与数组内m,n相差1
m=m-1;
n=n-1; //不可使用 m--,n--,因为系统会认为没赋值便执行运算
for(i=0;i<5;i++){
temp = a[m][i];
a[m][i] = a[n][i];
a[n][i] = temp;
}
printf("输出:\n");
for(i = 0;i < 5;i++)
{
for(j = 0;j < 5;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
}
无法完成for循环内通过scanf函数对二位整形数组赋值(应该是scanf出问题了,求修正)
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
谛凌 2022-03-10 10:48关注给你改好了
确实是scanf#include<stdio.h> #include<math.h> #include<stdlib.h> int main(){ int a[5][5] = {}; int m, n; int i,j,temp; for(i = 0;i < 5;i++) { for(j = 0;j < 5;j++) { scanf("%d",&a[i][j]); //这里取地址 printf("%d\n",a[i][j]); //这里不取地址 } printf("\n"); } printf("输入交换行m,n的值:\n"); scanf("%d,%d",&m,&n); //注意要交换的行数,与数组内m,n相差1 m=m-1; n=n-1; //不可使用 m--,n--,因为系统会认为没赋值便执行运算 for(i=0;i<5;i++){ temp = a[m][i]; a[m][i] = a[n][i]; a[n][i] = temp; } printf("输出:\n"); for(i = 0;i < 5;i++) { for(j = 0;j < 5;j++) { printf("%d",a[i][j]); } printf("\n"); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录