编写一函数fun,实现矩阵(3行3列)的转置(即行列互换)

如题所述

#include<stdio.h>

#define N 3

int arry[N][N],b[N][N];

int main(){

void merg(int arry[3][3]);

int a[3][3],i,j;

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

for(j=0;j<N;j++){

scanf("%d",&arry[i][j]);

}

printf("原始的矩阵为:\n");

for(i=0;i<N;i++){

for(j=0;j<N;j++){

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

printf("\n"); 

}

printf("\n"); 

merg(arry);

printf("变换后的矩阵为:\n");

for(i=0;i<N;i++){

for(j=0;j<N;j++){

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

printf("\n"); 

}

}

void merg(int arry[3][3]){

int i,j,temp;

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

for(j=0;j<N;j++){

b[j][i]=arry[i][j];

}

}

扩展资料:

for循环:

语句的一般形式为:

for (表达式1; 表达式2; 表达式3)
{
语句;
}

表达式1、表达式2和表达式3之间是用分号;隔开的,千万不要写成逗号。

for(表达式1;表达式2;表达式3)的后面千万不要加分号。

执行过程:

求解表达式1。

求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步。

求解表达式3。

转回上面第2步继续执行。

循环结束,执行 for 语句下面的语句。

多层 for 循环:

执行过程与单个 for 循环的执行过程是一模一样的。多层 for 循环将单个 for 循环大括号中的“语句”换成了 for 循环。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-10
华录_起点 的回答是正确的,因为他的程序只处理了上三角。下面两位同僚的处理方式有点问题,因为后面又转回来了。
第2个回答  2010-08-10
void fun(int array[3][3])
{ int i,j,t;

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

{ t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}

}
第3个回答  2010-08-10
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;}

}本回答被提问者采纳
第4个回答  2010-08-10
void reverse(int arr[3][3]){
int s;
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
s = arr[i][j]; arr[i][j] = arr[j][i]; arr[j][i] = s;
}
}
}
相似回答