永发信息网

二维数组 矩阵互换..着急中...

答案:2  悬赏:70  手机版
解决时间 2021-03-16 12:11
  • 提问者网友:了了无期
  • 2021-03-15 22:48
int t,i,j,r[3][3]={{1,2,3},{7,8,9}};
for(i=0;i<2;i++)
{
for(j=i;j<3;j++)
{
t=r[i][j];
r[i][j]=r[j][i];
r[j][i]=t;
}
}
for(i=0;i<3;i++)
{ for(j=0;j<2;j++)
printf("%d ",r[i][j]);
printf("\n");
}
问题:明明是两行三列,为什么定义时候确实[3][3]
还有for循环遍历的时候不是i<=行数-1,j<=列数-1么?
最佳答案
  • 五星知识达人网友:鱼芗
  • 2021-03-15 22:59
因为[2][3]转换后是[3][2]..定义[3][3]才能满足要求..
用[2][3]的放转换后会内存出错..
i<=行数-1,j<=列数-1 也是对的..不过用的<=..
而上面的代码用是<所以是i<行数..j<列数...
全部回答
  • 1楼网友:西风乍起
  • 2021-03-15 23:08
#include<stdio.h> #include <time.h> #define n 3 #define m 4 int main() { int i,j,max,s,t,a[n][m]; srand(time(0)); for(i=0; i<n; i++) { for(j=0; j<m; j++) { a[i][j]=10+rand()%89; } } max = a[0][0]; s = t = 0; for(i=0; i<n; i++) { for(j=0; j<m; j++) { if(max < a[i][j]) { max = a[i][j]; s = i; t = j; } printf("%d ",a[i][j]); } printf("\n"); } printf("最大值是:%d ,所在位置是第%d行第%d列\n",max,s+1,t+1); return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯