c++ 输入一个4*4的矩阵。转置后输出结果 (转置就是行数列与列数列元素对换)

2024-11-15 13:27:00
推荐回答(2个)
回答1:

// Note:Your choice is C++ IDE
#include
using namespace std;
int jzzz(int **a,int m,int n)
{
int **b=new int *[n];
for(int i=0;i {
b[i]=new int [m] ;
}
for( i=0;i {
for(int j=0;j {
b[j][i]=a[i][j];
}
}

cout<<"倒置的矩阵为:"< for(i=0;i {
for(int j=0;j {
cout< }
cout< }
//删除a数组
for( i= 0; i { delete[] a[i];
a[i] = NULL;
}
delete[] a;
a = NULL;
//删除b数组
for(i= 0;i { delete[] b[i];
a[i] = NULL;
}
delete[] b;
a = NULL;
return 0;
}

int main()
{
int m,n;
cout<<"请输入你要构造矩阵的行数和列数:"< cin>>m>>n;
int **a=new int *[m];
cout<<"请按每行的顺序输入矩阵的值:"< for(int i=0;i {
a[i]=new int[n] ;
for(int j=0;j {
cin>>a[i][j];
//cout< }
}
cout<<"您所输出的矩阵为:"< for(i=0;i {
for(int j=0;j {
cout< }
cout< } jzzz(&a[0],m,n); return 0;
}

回答2:

我用c语言写的 c++应该也可以用的 不知道是不是要达到你要的效果 #include
void main()
{
int n,i,j;
scanf("%d",&n);
int a[n][n];
for(i=0;i for(j=0;j {
scanf("%d",&a[i][j]);
}
for(i=0;i {
for(j=0;j {
if(j==n-1)
printf("%d",a[j][i]);
else
printf("%d ",a[j][i]);
}
printf("\n");
}
}