t=a[i][j];
a[i][j]=a[j][i];
t=a[j][i];
这是为了将a[i][j]和ap[j][i]里面的数换过来,直接用a[i][j]=a[j][i];的话,只是将后面的值给了前面的,后面的那个没有变,=是赋值不是交换。
为什么不能把return写在循环里面,因为return意味着返回一个值并且退出这个函数,读到return就会退出这个函数,不会再执行循环
此外,你应该在分函数里输出转换后的矩阵,因为形参的值不会传递出来/**这一点不太清楚数组是不是这样,你在查一下
程序代码:
a[i][j]=a[j][i];
t=a[j][i];
这是为了将a[i][j]和ap[j][i]里面的数换过来,直接用a[i][j]=a[j][i];的话,只是将后面的值给了前面的,后面的那个没有变,=是赋值不是交换。
为什么不能把return写在循环里面,因为return意味着返回一个值并且退出这个函数,读到return就会退出这个函数,不会再执行循环
此外,你应该在分函数里输出转换后的矩阵,因为形参的值不会传递出来/**这一点不太清楚数组是不是这样,你在查一下
程序代码:#include<stdio.h>
#define n 3
void matrix(int a[3][3]);
int main()
{
int i,j;
int a[n][n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
printf("\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
matrix(a);
return 0;
}
void matrix(int a[3][3])
{
int i,j,t;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
t=a[j][i];
}
}
printf("转换后的矩阵为:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}








