编写并测试3*3矩阵转置函数,并使用数组保存3*3矩阵。
算法:先在主函数中定义一个二维数组,然后通过print函数来完成输出功能,这是通过喜欢来完成的,然后就是转置,转置时可以通过一个辅助数组来完成,先把距阵中的值传到此辅助数组中,然后把i行j列中的值传到j行i列中即可完成。
代码:
#include<iostream.h>
void main()
{
int a[3][3],i,j,b[3][3];
cout<<"请依次输入距阵中的元素:"<<endl;
for( i=0;i<3;i++)
{
for( j=0;j<3;j++)
{
cin>>a[i][j];
}
}
cout<<"此矩阵中的元素为:"<<endl;
for( i=0;i<3;i++)
{
for( j=0;j<3;j++)
{
cout<<a[i][j];
cout<<" ";
}
cout<<endl;
}
cout<<"经过转置后矩阵为:"<<endl;
for( i=0;i<3;i++)
{
for( j=0;j<3;j++)
{
b[i][j]=a[j][i];
cout<<b[i][j];
cout<<" ";
}
cout<<endl;
}
}
2使用动态内存分配生成动态数组来完成上述功能。
算法:先在主函数中定义一个整形指针,让它指向一个数组,在输出元素时,通过指针自增即可,在实现转置时,先把指针值传过去,然后通过类似上面的方式即可完成。
代码:
#include<iostream.h>
#include<stdlib.h>
void print(int *a)
{
for(int i=0;i<9;i++)
{
cout<<*a;
cout<<" ";
a++;
if((i+1)%3==0)cout<<endl;
}
}
void reserve(int *&a)
{
int b[3][3],i,j;
int *c;
c=a;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
b[i][j]=*a;
a++;
}
}
a=c;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
*a=b[j][i];
a++;
}
}
a=c;
}
void main()
{
int i,j;
int *a,*b;
a=(int *)new int[3][3];
b=a;
cout<<"请依次输入距阵中的元素:"<<endl;
for(i=0;i<9;i++)
{
cin>>*a;
a++;
}
a=b;
cout<<"此距阵中的元素为:"<<endl;
print(a);
reserve(a);
cout<<"经过转置后此距阵为:"<<endl;
print(a);
}
分享到:
相关推荐
编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵,在使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作。
从键盘输入一个3*3的矩阵,要求:输出此矩阵对应的转置矩阵(所谓转置,指的是对任意元素Pi,j和对应的Pj,i交换)。
C++矩阵转置代码!
数据结构C++语言描述——应用标准模板库STL.PDF
C++语言程序设计——实训教程,有助于新手参考!有助于大学生实训课参考!
作者将C++语言作为算法描述语言,应用包含规范化的数据结构的标准模板库,集中讲述了数组、向量、表、关联树容器,以及集合、映射、堆、哈希表和图等数据结构及其算法,重点讨论了如何高效地存储大型数据集合,涵盖...
构造m*n的矩阵,计算矩阵的+,-,*,/,转置
本实验为设计性实验,注重培养学生的动手能力,通过实验使学生掌握数组的定义和使用方法 ,学习基本排序和查找算法,能够使用数组编写比较复杂的程序。
《C++语言描述——数据结构算法与应用》高清版
作者将C++语言作为算法描述语言,应用包含规范化的数据结构的标准模板库,集中讲述了数组、向量、表、关联树容器,以及集合、映射、堆、哈希表和图等数据结构及其算法,重点讨论了如何高效地存储大型数据集合,涵盖...
数据结构与程序设计——C++语言描述(答案解析) 英文版本 要的下!
C_C++语言硬件程序设计——基于TMS320C5000系列DSP
数据结构C++语言描述——应用标准模板库
这是数据结构c++语言描述——应用标准模板库(STL)那本书的源代码
《C++语言描述——数据结构算法与应用》高清版 经典的数据结构教材,第二版尚未在国内出版,与第一版区别主要是部分代码更新,但数据结构作为经典内容主干还是不变的 分栏的pdf,非影印扫描版,方便学习
用C++实现矩阵转置的模板类,属于标准模板。
C++课程设计——个人财务管理,作为大学课程设计挺不错的,希望对大家有帮助。
C++课程设计——计算器.doc
Visual C++程序设计——基础与实例分析源代码