首页 新闻 会员 周边

二维数组互换

0
[已解决问题] 解决于 2018-08-12 21:41

在二维数组行列互换的过程中,互换部分是,但是输出时将原来的a[i][j];换成a[j][i];不就行了?为什么要花费那么多篇幅去写?

西戈wzc的主页 西戈wzc | 菜鸟二级 | 园豆:222
提问于:2018-08-12 00:33
< >
分享
最佳答案
0

你先按你的想法改了,再测试测试看。然后再想想看。

奖励园豆:5
窗户 | 小虾三级 |园豆:886 | 2018-08-12 18:44

结果是一样的,但是本质是不一样的,我的想法只是改变了表面输出,而没有从根本上的储存上没有解决问题,我是这样想的,你说呢?

西戈wzc | 园豆:222 (菜鸟二级) | 2018-08-12 21:14

@西戈wzc: 

你实验的代码长什么样,又是如何确定结果一样的

窗户 | 园豆:886 (小虾三级) | 2018-08-12 21:19

@窗户: #include<stdio.h>
int main(){
 int i,j,n,temp;
 int a[10][10];
 printf("Enter n=");
 scanf("%d",&n);
 for(i=0;i<=n-1;i++)
  for(j=0;j<=n-1;j++)
   a[i][j]=i*n+j+1;
 for(i=0;i<=n-1;i++)
  for(j=0;j<=n-1;j++){
   if(i<=j){
    temp=a[i][j];
    a[i][j]=a[j][i];
    a[j][i]=temp;
   }
  }
 for(i=0;i<=n-1;i++){
  for(j=0;j<=n-1;j++)
   printf("%4d",a[j][i]);
   printf("\n");
  }
    return 0;
}

这是原代码,我改成了

西戈wzc | 园豆:222 (菜鸟二级) | 2018-08-12 21:22

@西戈wzc: 哦,你只是对一个特殊的阵重新整体赋值。而原程序的代码实际上是实现方阵转置。问题只有在特定的语意才有意义

窗户 | 园豆:886 (小虾三级) | 2018-08-12 21:27

@窗户: 就是,按照我的想法这样改,在大程序中就会容易出错,而这样一个简单的程序中勉强可以

西戈wzc | 园豆:222 (菜鸟二级) | 2018-08-12 21:30
其他回答(1)
0

没看到"那么多篇幅"啊

吴瑞祥 | 园豆:29449 (高人七级) | 2018-08-12 14:29

什么意思?你说的我没有懂

支持(0) 反对(0) 西戈wzc | 园豆:222 (菜鸟二级) | 2018-08-12 21:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册