:编写程序,实现矩阵(3行3列)的转置(即行列互换)

2024-12-22 19:08:17
推荐回答(5个)
回答1:

#include

#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

for(j=0;j

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

}

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

for(i=0;i

for(j=0;j

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

printf("\n"); 

}

printf("\n"); 

merg(arry);

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

for(i=0;i

for(j=0;j

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

printf("\n"); 

}

}

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

int i,j,temp;

for(i=0;i

for(j=0;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 循环。

回答2:

#include
void main()
{
void change(int x[][3]);
int x[3][3]={{100,200,300},{400,500,600},{700,800,900}};
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);
printf("行列互换后的数组为\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
// x[i][j]=x[i][j]+1;
printf("%3d",x[i][j]);
}
printf("\n");
}
}
void change(int x[][3])//函数调用change(x) 这里的x是数组

{
int a;
a=x[0][1];x[0][1]=x[1][0];x[1][0]=a;
a=x[0][2];x[0][2]=x[2][0];x[2][0]=a;
a=x[1][2];x[1][2]=x[2][1];x[2][1]=a;
}

回答3:

#include
void main()
{
int a[3][3],b[3][3];
int p=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
cin>>a[i][j];
b[j][i]=a[i][j];
}
}
cout<<"原矩阵为:"< for(int m=0;m<3;m++)
{
for(int n=0;n<3;n++)
{
cout< p++;
if(p%3==0)
cout<
}
}
cout< cout<<"转置后的矩阵为:"< for(int c=0;c<3;c++)
{
for(int d=0;d<3;d++)
{
cout< p++;
if(p%3==0)
cout<
}
}
}

回答4:

考试时禁止作弊!好歹也是个楷模!

回答5:

int
fun(int
array[3][3])
{ int
i,j,t;for
(i=0;i<3;i++)for(j=i;j<3;j++)t=array[i][j],array[i][j]=array[j][i],array[j][i]=t;
}