求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
建议你和编程老师当面探讨一下这个问题,注意学习一下方法

写一函数使给定的一个二维数组(3*3)转置即行列互换并在主函数中调用该...
include<cstdio> void trans(int a[3][3]){ int t;for(int i = 0; i < 3; i++){ for(int j =0; j < i; j++){ t = a[i][j];a[i][j] = a[j][i];a[j][i] = t;} } return ;} int main(){ int mat[3][3];printf("Please input a 3*3 matrix.\\n")...

写一个函数,使给定的一个二维数组(3×3)转置,即行列互换.下面的编程
#define N 3 int array[N][N]; void convert(int array[3][3]) \/*函数类型可定义为void,也可用默认的int*\/ {int i,j,t; \/*因为函数形实参是数组,按地址传递*\/ \/*两个数组所用空间相同,函数无需返回值*\/ for(i=0;i<N;i++) for(j=i+... 展开 是王子公主 | 浏览3313 次 |举报 我有更...

C语言 函数调用写一个函数,使给定的一个3*3的二维整型数组转置,即行 ...
方法一、include<stdio.h> void main(){ void switchArray(int[3][3]);int array[][3]={{1,2,3},{4,5,6},{7,8,9}};int i,j;switchArray(array);return 0;} void switchArray(int array[][3]){ int newArray[3][3];int i,j;for(i=0;i<3;i++){ for(j=0;j<3;j...

写一函数,使给定的一个二维数组(3×3)转置,即行列互换。
1、首先打开Eclipse。2、新建一个新的Java工程。3、新建一个Example8类文件。4、创建2维数组。5、创建一个输出2维数组的函数。6、遍历数组,输出数组元素。7、输出2维数组。8、运行程序看看行列互换。

急救~~编写一函数,使输入的一个二维数组(3*3)转置,即行列互换。
main(){ int a[3][3]={0};for(int i=0;i<3;i++)for(int j=0;j<3;j++){ scanf("%d",&a[i][j]);} for(int i=0;i<3;i++)for(int j=0;j<=i\/2;j++){ int temp=a[i][j];a[i][j]=a[j][i];a[j][i]=temp;} printf("after switch,the array is:\\n"...

写一个函数,使给定的一个3×3的二维整型数组转置,即行列互换。
void main(){ void change(int x[][3],int y);int x[3][3]={{1,2,3},{4,5,6},{7,8,9}};int i,j;printf("原数组为\\n");for(i=0;i<=2;i++){ for(j=0;j<=2;j++){ printf("%3d",x[i][j]);} printf("\\n");} change(x,3);printf("行列互换后的数组为...

写一个函数,使给定的一个3×3的二维整型数组转置,即行列互换。
void f(int a1[3][3]){ int i,j,t;for(i=0;i<3;i++)for(j=i;j<3;j++){ t=a1[j][i];a1[j][i]=a1[i][j];a1[i][j]=t;} } main(){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int i,j;f(a);printf("转置后的数组为\\n");for(i=0;i<3;i+...

编写一个函数,功能是将一个二维数组(3X3)转置,即行列互换(转置),用函数...
include<stdio.h>void fun(int a[3][3]){int x,y,m,n,b[3][3];for( x=0;x<3;x++) { for( y=0;y<3;y++) { b[y][3-x-1]=a[x][y]; } } printf("打印置换后的二维数组\\n");for( m=0;m<3;m++) { for( n=0;n<3;n++) { printf("%d ",b[m...

C语言函数习题:写一个函数,使给定的一个3*3的二维整型数组转置,即行 ...
void convert(int array[][3]){ int i,j,t;for(i=0;i<N;i++)for(j=i+1;j<N;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;...

如何用C语言程序编写“利用函数将给定的3*3二维数组转置”
usingnamespacestd;void zhuang zhi(int a[3][3]){int m,n,i;for(m=0;m<2;m++)for(i=0;i<3;i++){if(m!=1||i!=0){n=a[i][m];a[i][m]=a[m][i];a[m][i]=n;} } } int main(){ inta[3][3];inti,j...

相似回答