写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,输入一面的矩阵:
程序输出:
试题程序:
#include <stdio.h>
#include <conio.h>*/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int fun(int array[3][3])
{ int i,j,t;
for (i=0;i<2;i++)
for (j=i+1;j<3;j++)
{t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}
}
main()
{ int i,j;
int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};
system("cls");
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
fun(array);
printf("Converted array:\n");
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
}
void fun(int a[][3]) { // 把a[3][3]改为a[][3]即可,应为数组是传址的。
int i,j,t;
for(i = 0;i < 2;i++)
for (j = i + 1;j < 3;j++) {
t = a[i][j];
a[i][j] = a[j][i];
a[j][i] = t;
}
}
为什么要这样改? 求教
追答因为int函数需要返回值,但是你的程序中无论是调用点还是函数声明,都不需要返回值
至于其他人回答的函数参数,不算什么大的问题,所以没有说