求C语言程序:编写一个函数,使给定的一个二维数组(3*3)转置。感激不尽

2024-11-21 12:48:08
推荐回答(5个)
回答1:

#include

int main()

{int i,j,t,a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

printf("原来的数组:\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%d ",a[i][j]);

printf("\n");

}

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

printf("转置后的数组:\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%d ",a[i][j]);

printf("\n");

}

getch();

return 0;

}

回答2:

#include
void main()
{ int a[3][3];
int i,j,m=0;
for(i=0;i<3;i++) //对a[3][3]赋值
for(j=0;j<3;j++,m++)
a[i][j]=m;

for(i=0;i<3;i++)//输出原矩阵的值
{{ for(j=0;j<3;j++)
printf("%3d ",a[i][j]);
}
printf("\n");
}
//交换的实现如下
for(i=0;i<3;i++)
for(j=0;j {int temp;
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
//输出转置后的矩阵
printf("\n 转换后的矩阵如下:\n");
for(i=0;i<3;i++)
{{ for(j=0;j<3;j++)
printf("%3d ",a[i][j]);
}
printf("\n");
}

}

回答3:

/* 函数功能: 对任意row行col列的矩阵转置
函数入口参数: 指向一维整型数组的指针变量a,指向单元存放转置前的矩阵元素
整型变量row,矩阵的行数即二维整型数组的行数
整型变量col,矩阵的列数即二维整型数组的列数
函数出口参数: 指向一维整型数组的指针变量at,指向单元存放转置后的矩阵元素
函数返回值: 无
*/
void convert(int (*a)[COL], int (*at)[ROW], int row, int col)
{
int i, j;

for (i=0; i {
for (j=0; j {
*(*(at+j)+i) = *(*(a+i)+j);
}
}
}
另外,虚机团上产品团购,超级便宜

回答4:

a[3][3]
for(int i=0;i<3;i++)
for(int j=0;j { int temp=a[i][j];
a[i][j]=a[j][i]; a[j][i]=temp;
}

回答5:

建议你和编程老师当面探讨一下这个问题,注意学习一下方法