(1)随机初始化一个5*5的矩阵,并输出;
(2)将其传递给函数,实现矩阵转置;
(3)在主函数中输出结果。
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
//生成5*5随机矩阵
void gr_juzhen(int a[][5],int max_size )
{
// int i,j;
srand(time(NULL));
for(int i=0;i<max_size;i++)
{
for(int j=0;j<max_size;j++)
{
a[i][j]=rand();//生成随机矩阵的元素值
}
}
}
//矩阵转置
/*这里的矩阵是个方阵,对角线元素不动,只需将对角线两边元素对称互换,暴力求解 */
int zhuanzhi(int (*pa)[5],int(*pb)[5],int max_size)//用数组指针传参
{
//int i,j;
for(int i=0;i<max_size;i++)
{
for(int j=0;j<max_size;j++)
{
if(i==j)//对角线上的元素
{
pb[i][j]=pa[i][j];
}
else
{
pb[i][j]=pa[j][i];//非对角线元素
}
}
}
}
int main()
{
int a[5][5],b[5][5];//定义两个二维数组,即矩阵,其中b为a的转置矩阵
int max_size=5;
int i,j;//循环体用
cout<<"5*5矩阵如下:"<<endl;
gr_juzhen(a,max_size);
for(i=0;i<max_size;i++)//输出随机矩阵
{
for(j=0;j<max_size;j++)
{
cout<<a[i][j]<<"\t";
}
cout<<endl;
}
cout<<"转置矩阵如下:"<<endl;
zhuanzhi(a,b,max_size);
for(i = 0;i < max_size;i++)//输出转置后的矩阵
{
for(j = 0;j < max_size;j++)
{
cout<<b[i][j]<<"\t";
}
cout<<endl;
}
return 0;
}
版权声明:本文为weixin_44814176原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。