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

如题所述

#include<stdio.h>

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;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-27
#include<stdio.h>
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<i;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");
}

}本回答被提问者和网友采纳
第2个回答  2011-05-04
/* 函数功能: 对任意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<row; i++)
{
for (j=0; j<col; j++)
{
*(*(at+j)+i) = *(*(a+i)+j);
}
}
}
另外,虚机团上产品团购,超级便宜
第3个回答  2011-04-27
a[3][3]
for(int i=0;i<3;i++)
for(int j=0;j<i;j++)
{ int temp=a[i][j];
a[i][j]=a[j][i]; a[j][i]=temp;
}
第4个回答  2019-12-23
建议你和编程老师当面探讨一下这个问题,注意学习一下方法