#include<stdio.h> int main() { void sort(int x[][3],int n); int a[2][3]; int i,j; printf("请输入一个2*3矩阵\n"); for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); sort(a,2); for(i=0;i<2;i++) { for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n"); } } void sort(int x[][3],int n) { int i,j,t; for(i=0;i<n;i++) for(j=0;j<3;j++) if(i<j) { t=x[i][j]; x[i][j]=x[j][i]; x[j][i]=t; } }
怎么改啊?
解决方案
80
1.申请的数组应当是 int a[3][3];否则会越界
2.输出的时候应该是输出3行2列,而不是2行3列
2.输出的时候应该是输出3行2列,而不是2行3列
#include<stdio.h> int main() { void sort(int x[][3],int n); int a[3][3]; int i,j; printf("请输入一个2*3矩阵\n"); for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); sort(a,2); for(i=0;i<3;i++) { for(j=0;j<2;j++) printf("%d ",a[i][j]); printf("\n"); } } void sort(int x[][3],int n) { int i,j,t; for(i=0;i<n;i++) for(j=0;j<3;j++) if(i<j) { t=x[i][j]; x[i][j]=x[j][i]; x[j][i]=t; } }