当前位置:首页 » 编程语言 » c语言行列转换的代码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言行列转换的代码

发布时间: 2023-08-28 09:24:19

1. c语言:二维数组行列互换

由于行、列不确定,所以要动态处理。举例代码如下:

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"stdlib.h"
intmain(void){
int**a,**b,m,n,i,j;
while(1){//保证输入的行、列数为正数
printf("Pleaseenterm&n(intm>0,n>0)... ");
if(scanf("%d%d",&m,&n),m>0&&n>0)
break;
printf("Error,redo:");
}
a=(int**)malloc((j=sizeof(int))*m);
b=(int**)malloc(j*n);
if(a==NULL||b==NULL){
printf("Applicationmemoryfailure... ");
exit(0);
}
for(i=0;i<m;i++)
if((a[i]=(int*)malloc(j*n))==NULL){
printf("Failedtocreatethearray... ");
exit(0);
}
for(i=0;i<n;i++)
if((b[i]=(int*)malloc(j*m))==NULL){
printf("Failedtocreatethearray... ");
exit(0);
}
for(i=0;i<m;i++)
for(j=0;j<n;scanf("%d",a[i]+j++));
printf(" ");
for(i=0;i<n;i++){
for(j=0;j<m;j++)
printf("%d",b[i][j]=a[j][i]);//a的行、列互换后存入b
printf(" ");
}
for(i=0;i<m;free(a[i++]));
free(a);
for(i=0;i<n;free(b[i++]));
free(b);
return0;
}

2. C语言将一个二维数组行和列的元素互换,存到另一个二维数组中,即矩阵的转换

#include <stdio.h>

int main ( )

{ int i,j,a[3][4],b[4][3];

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

for(j=0; j<4; j++)

a[i][j]=i*4+j+1;

printf("二维数组A: ");

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

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

{ printf("%4d",a[i][j]); //输出A矩阵

b[j][i]=a[i][j]; //转置到B矩阵

}

printf(" ");

}

printf(" 二维数组B: ");

for(i=0; i<4; i++) //输出B矩阵

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

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

printf(" ");

}

return 0;

}

3. 您好~怎么样用C语言编写一个实现矩阵((3行3列)的转置,即行列互换

#include <stdio.h>
int fun(int array[3][3])
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
temp=array[i][j];
array[i][j]=array[j][i];
array[j][i]=temp;
}
}
return 0;
}
int main()
{
int i,j;
int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}};
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
fun(array);
printf("Converted array:\n");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf("%7d",array[j][i]);
printf("\n");
}
return 0;
}

4. c语言编程编写程序实现矩阵(3行3列)的转置(即行列互换),将转置后的数组写到out指针

#include<iostream.h>
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;

}
}
}

5. C语言中如何将一个3×3的二维数组,行列互换,并赋值到另一个二维数组

#include<stdio.h>


intmain(void)


{


intarray[3][3]={1,2,3,4,5,6,7,8,9};


intarray_1[3][3];


printf("原始数组: ");


for(inti=0;i<3;i++){


for(intj=0;j<3;j++){


array_1[j][i]=array[i][j];


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


}


printf(" ");


}


printf("转换后数组: ");


for(intm=0;m<3;m++){


for(intn=0;n<3;n++){


printf("%d ",array_1[m][n]);


}


printf(" ");


}


return0;


}

6. C语言,使一个3*3的数组转置,即行列互换

#include<stdio.h>
intmain()
{
inta[3][3],b,c,d;
for(b=0;b<3;b++)
for(c=0;c<3;c++)
scanf("%d",&a[b][c]);
printf(" ");
for(b=0;b<3;b++)
for(c=b+1;c<3;c++)
{
d=a[b][c];
a[b][c]=a[c][b];
a[c][b]=d;
}
for(b=0;b<3;b++)
{for(c=0;c<3;c++)
printf("%d",a[b][c]);
printf(" ");
}
return0;
}