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"); } }