Code Bye

C语言又一个函数不知道哪里错了

#include<stdio.h>
void zhuanzhi(int array[][3])
{
int t,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
void main()
{
int array[3][3];
int m,n;
for(m=0;m<3;m++)
for(n=0;n<3;n++)
scanf(“%d”,&array[m][n]);
zhuanzhi(array);
for(m=0;m<3;m++)
{
for(n=0;n<3;n++)
printf(“%d “,array[m][n]);
printf(“\n”);
}
}
如上,问题是他没有转置。输出了原数组
解决方案

20

#include<stdio.h>
void zhuanzhi(int array[][3])
{
int t,i,j;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf(“%d “,array[i][j]);
}
int main()
{
int array[3][3];
int m,n;
for(m=0;m<3;m++)
for(n=0;n<3;n++)
scanf(“%d”,&array[m][n]);
zhuanzhi(array);
printf(“\n”);
return 0;
}
注意那个条件

40

修改方法:
for(i=0;i<3;i++)
		for(j=i;j<3;j++)

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言又一个函数不知道哪里错了