:编写程序,实现矩阵(3行3列)的转置(即行列互换)
100 200 300
400 500 600
700 800 900
程序输出:
100 400 700
200 500 800
300 600 900 展开
#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 循环。
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;
}
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<<"原矩阵为:"<<endl;
for(int m=0;m<3;m++)
{
for(int n=0;n<3;n++)
{
cout<<a[m][n]<<" ";
p++;
if(p%3==0)
cout<<endl;
}
}
cout<<endl;
cout<<"转置后的矩阵为:"<<endl;
for(int c=0;c<3;c++)
{
for(int d=0;d<3;d++)
{
cout<<b[c][d]<<" ";
p++;
if(p%3==0)
cout<<endl;
}
}
}
2010-06-11
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;
}