新手上路,各位帮我看看这到底哪出错了。
#include<iostream> using namespace std;
#include<stdlib.h> //包含函数srand的头文件
#include<time.h> //包含函数time的头文件
#define M 5 //定义两个常量
#define N 5
int a[M][N],c[M][N]; //定义二维数组a、c为全局变量,用来存放矩阵
void trans(int b[M][N]); //函数声明
void main()
{int i,j;
srand((unsigned)time(NULL)); //产生一个时间
for(i=0;i<M;i++) //随机产生数组a中每一个元素的值
for(j=0;j<N;j++)
*(*(a+i)+j)=rand()%100; //将一个0~99之间的随机数赋予当前元素
cout<<"自动生成矩阵为: \n";
for(i=0;i<M;i++) //输出自动生成5*5阶矩阵
{for(j=0;j<N;j++)
cout<<'\t'<<*(*(a+i)=j);
cout<<endl;
}
trans(a); //调用求转置矩阵的函数
cout<<"转置矩阵为: \n";
for(i=0;i<M;i++) //输出转置后的矩阵
{for(j=0;j<N;j++)
cout<<'\t'<<*(*(c+i)+j);
cout<<endl;
}
}
viod trans(int b[M][N]) //定义求转置矩阵的函数
{int i,j;
int(*p)[M]; // 定义指向一维数组的指针P
p=c; // 将数组c的首地址赋值给P
for(i=0;i<M;i++) //实现矩阵转置
for(j=0;j<N;j++)
*(*(p+i)+j)=*(*(b+j)+i);
}