C语言函数习题:写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换。

2025-02-24 15:12:20
推荐回答(2个)
回答1:

void convert(int array[][3])
{
int i,j,t;
for(i=0;ifor(j=i+1;j{
t=array[i][j]; //这里我想用另外一个数组来存放,代码该怎么改呢?
array[i][j]=array[j][i];
array[j][i]=t;
}
}

void convert(int array[][3])
{
int b[][3];
int i,j,t;

for(i=0;i for(j=i+1;j {
b[j][i]=a[i][j];
}

for(i=0;i for(j=i+1;j {
a[i][j]=b[i][j];
}

}

回答2:

你的意思是:
#include
#define N 3
int array[N][N];
int main()
{
void convert(int array[][3]);
int i,j;
printf("input array:\n");
for(i=0;i {
for(j=0;j {
scanf("%d",&array[i][j]);
}
}
printf("\noriginal array:\n");
for(i=0;i {
for(j=0;j {
printf("%5d",array[i][j]);
}
printf("\n");
}
convert(array);
return 0;
}
void convert(int array[][3])
{
int i,j,t;
int a[3][3];
for(i=0;i {
for(j=0;j {
a[i][j]=array[i][j];
}
}
for(i=0;i {
for(j=i+1;j {
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
printf("convert array:\n");//在主函数中去掉,直接在函数中
for(i=0;i {
for(j=0;j {
printf("%5d",a[i][j]);
}
printf("\n");
}
}