C语言将二维数组A的行和列元素互换,存到二维数组B中
3个回答
展开全部
void Converse(double **A,int rows,int cols,double **B)
{
B = (double**)malloc(sizeof(double*) * cols);
int i,j;
for(i = 0;i < cols;i++)
B[i] = (double*)malloc(sizeof(double)*rows);
for(i = 0;i < rows;i++)
for(j = 0;j < cols;j++)
B[j][i] = A[i][j];
}
{
B = (double**)malloc(sizeof(double*) * cols);
int i,j;
for(i = 0;i < cols;i++)
B[i] = (double*)malloc(sizeof(double)*rows);
for(i = 0;i < rows;i++)
for(j = 0;j < cols;j++)
B[j][i] = A[i][j];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题可以用一个双重循环来实现,即遍历二维数组A的每一个元素,并将其赋值给二维数组B的对应位置。例如,如果A是一个2行3列的数组,B是一个3行2列的数组,则有:
for (i = 0; i < 2; i++) //遍历A的每一行{ for (j = 0; j < 3; j++) //遍历A的每一列
{
B[j][i] = A[i][j]; //将A的元素赋值给B的对应位置
}
}
这样就可以实现将二维数组A的行和列元素互换,存到二维数组B中
for (i = 0; i < 2; i++) //遍历A的每一行{ for (j = 0; j < 3; j++) //遍历A的每一列
{
B[j][i] = A[i][j]; //将A的元素赋值给B的对应位置
}
}
这样就可以实现将二维数组A的行和列元素互换,存到二维数组B中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#define N 3
#define M 4
void main()
{
static int a[N][M]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int t,i,j;
printf("原矩阵:\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%5d",a[i][j]);
printf("\n");
}
for(i=0;i<M;i++)
for(j=0;j<i;j++)
{
t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}
printf("转置后的矩阵为:\n");
for (i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
#define N 3
#define M 4
void main()
{
static int a[N][M]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int t,i,j;
printf("原矩阵:\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%5d",a[i][j]);
printf("\n");
}
for(i=0;i<M;i++)
for(j=0;j<i;j++)
{
t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}
printf("转置后的矩阵为:\n");
for (i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询