#include
#include
#include
void print(int *,int,int);
void turn(int *,int,int);
int main(int argc, char *argv[])
{
int r,c;
printf("please input the number of row,cow:");
scanf("%d,%d",&r,&c);
int *a=(int *)malloc(sizeof(int)*r*c);
for(int i=0;iscanf("%d",a+i);
print(a,r,c);
turn(a,r,c);
system("pause");
return 0;
}
void print(int *p,int r,int c)
{
for(int i=0;i{
for(int j=0;jprintf("%d ",*(p+i*c+j));
printf("\n");
}
}
void turn(int *p,int r,int c)
{
int *d=(int *)malloc(sizeof(int)*r*c);
for(int i=0;ifor(int j=0;j *(d+j*r+i)=*(p+i*c+j);
print(d,c,r);
}
运行效果如下:
不知道你要的是不是这个效果~~
#include
using namespace std;
int main()
{
int row=10,col=10;
cout<<"输入矩阵行列数:"<
cin>>col;
int A[100][100];
int B[100][100];
cout<<"输入矩阵元素:"<
cin>>A[i][j];
B[j][i]=A[i][j];
}
cout<<"原矩阵为:"<
cout< }
cout<
cout<<"转置后矩阵为:"<
cout< }
cout<
}
#include
#define N 100
int r,c,a[N][N]; //数组定义时不能有变量
void print ();
void turn ();
void main()
{
printf("please input the number of row,cow:");
scanf("%d%d",&r,&c);
int i,j;
for(i = 0 ; i < r ; i++)
for(j = 0; j < c ; j++)
scanf("%d",&a[i][j]);
turn();
print();
}
void print()
{
int i;
int j;
for(i = 0 ; i < r ; i++)
{
for(j = 0 ; j < c ; j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
void turn()
{
int i,j;
int b[N][N];
for(i = 0 ; i < r ; i++)
{
for(j = 0 ; j < c ; j++)
b[i][j] = a[i][j];
}
for(i = 0 ; i < r ; i++)
{
for(j = 0 ; j < c ; j++)
a[j][i] = b[i][j];
}
i = c;
c = r;
r = i;
}
//你的代码有太多语法错误,请你把基础知识掌握牢点。
声明的时候没有指定数组的大小