- 论坛徽章:
- 0
|
不推荐将array定义成全局变量来完成操作,那样的话 调用函数中array[i][j]就和a[i][j]完全混淆了
#include <stdio.h>
#define n 3
void convert(int a[n][n])
{
int i,j,tmp;
for(i=0;i<n;i++)
for (j=0;j<=i;j++)
if(i!=j)
{
tmp = a[ i][j];
a[ i][j]=a[j][ i];
a[j][ i]=tmp;
}
}
int main()
{
int i,j;
int array[n][n];
printf("请输入一个3*3矩阵:\n");
for (i=0;i<n;i++)
for (j=0;j<n;j++)
scanf("%d",&array[ i][j]);
printf("您输入的矩阵是:\n");
for(i=0;i<n;i++){
for (j=0;j<n;j++)
printf("%5d",array[ i][j]);
printf("\n");
}
convert(array);
printf("转置后的矩阵是:\n");
for(i=0;i<n;i++){
for (j=0;j<n;j++)
printf("%5d",array[ i][j]);
printf("\n");
}
return 0;
}
交换时设置中间变量,否则变成a[i][j]与a[j][i]之间的循环赋值 |
|