c语言二维数组行列互换
‘壹’ 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;
}
‘贰’ 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;
}
‘叁’ 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;
}
‘肆’ c语言将一个二维数组的行列互换
inty[2][3]={
{1,2,3},
{4,5,6},
};
intindex[2][3]={
{0x00,0x01,0x10},
{0x11,0x20,0x21},
};
intx[3][2];
inti,i1,temp;
for(i=0;i<2;i++){
for(i1=0;i1<3;i1++){
temp=index[i][i1];
x[temp>>4][temp&0xf]=y[i][i1];
}
}
‘伍’ C语言关于二维数组行列互换的问题
这两个坐标分别代表行和列,所以“行列互换”实际上就是这两个坐标互换啊。比如第2行第3列换成第3行第2列,不就是b[3][2]=a[2][3]吗?