编写一个矩阵转置的函数,矩阵的行、列在程序中由用户输入

2024-11-30 18:17:59
推荐回答(2个)
回答1:

用一维数组实现的,本身C语言就是用一维存储的二维数组,这个没有区别,册差
#include
#include
using namespace std;

void covatrix(int *mtrx,int *mtrx1,int n,int k);
int main()
{

int n,k;
int *mtrx;
int *mtrx1;
int i,j;
printf("输入矩阵行数\n");
scanf("%d",&n);
printf("输入矩阵列数:\n");
scanf("%d",&k);

printf("请输入矩阵元神搜素\n");
mtrx=new int[n*k];//申请内存
mtrx1= new int[n*k];
for(i=0;i for(j=0;j {scanf("%d",&mtrx[i*k+j]);
}

covatrix(mtrx,mtrx1,n,k);
for(i=0;i { for(j=0;j {printf("%d ",mtrx1[i*n+j]);//输出转置后的矩阵元素

}printf("\n");}

cin.get();
return 0;
}
void covatrix(int *mtrx,int *mtrx1,int n,int k)//n为原矩阵的列数,k为原矩阵的行州瞎皮数
{
int i,j;
for(i=0;i for(j=0;j {mtrx1[j*k+i]=mtrx[i*n+j];}

}

回答2:

用一维数组实现的,本身C语言就是用一维存储的二维数组,这个没有区别,
#include

#include
using
namespace
std;
void
covatrix(int
*mtrx,int
*mtrx1,int
n,int
k);
int
main()
{
int
n,k;
int
*mtrx;
int
*mtrx1;
int
i,j;
printf("输入矩阵行数\n");
scanf("%d",&n);
printf("输入矩阵列数:此凳\n");
scanf("%d",&k);
printf("请输入矩阵元素\n");
mtrx=new
int[n*k];//申请内存
mtrx1=
new
int[n*k];
for(i=0;ifor(j=0;j{scanf("%d",&mtrx[i*k+j]);
}
covatrix(mtrx,mtrx1,n,k);
for(i=0;i<森迹旅k;i++)
{
for(j=0;j{printf("%d
",mtrx1[i*n+j]);//输出州睁转置后的矩阵元素
}printf("\n");}
cin.get();
return
0;
}
void
covatrix(int
*mtrx,int
*mtrx1,int
n,int
k)//n为原矩阵的列数,k为原矩阵的行数
{
int
i,j;
for(i=0;ifor(j=0;j{mtrx1[j*k+i]=mtrx[i*n+j];}
}