C++求A矩阵的转置矩阵B
本程序主要解决的是:编程序,按如下方法求A矩阵的转置矩阵B:输入两个正整数m和n,而后通过使用指针配合new运算符生成一个m行n列的二文动态数组A以及另一个n行m列的二文动态数组B,之后为A输入数据(A矩阵数据),进而求出其转置矩阵B(数据放动态数组B中)并输出结果。
程序执行的结果:
3.2 概要设计:
该程序的难点就是如何动态创建而为数组,首先要先创建int **p,然后在进行对其动态分配
p=new int *[m];
for(i=0;i<m;i++)
p[i]=new int[n];
这样就可以完成对其动态分配的任务了。
3.3 详细设计与编码:
见上传程序。
3.4 调试分析:
在调试时,主要时对动态分配二文数组会出现错误,再有就是在对矩阵进行转置的时候,不过稍加注意就可以解决错误了。
3.5 用户使用说明:
用户在使用的时候,程序要求输入的是m行n列,然后输入该矩阵的数据即可。
3.6 设计心得:
本次实验使用了new运算符,加深了对它的理解和应用,实验程序较为复杂,但执行较为简单。在耐心编完程序后仔细检查修改有时会给你带来意外的收获。
软件课程设计总结
在软件课程设计这门课的学习中我学到了很多东西,通过对题目的思考,设计,加深了我对c++的了解以及对mfc的应用的理解,在老师的帮助下,我的c++语言知识在不断地增加着,
现在能独立的完成不少应用程序,有朝一日,我一定能用它来对社会做出贡献。我将用我学到的知识来报答老师对我的教育!
在此,我对老师这一学期的耐心教导非常敬佩和感谢,是您对我的教育使得我获得如此大的收获,,您的指导使得我的知识得到飞快的增加。真的非常感谢您对我的指导!
#include<iostream>
using namespace std;
void main()
{
cout<<"请确认矩阵阶数n=";
int n;
cin>>n;
cout<<"请输入矩阵:"<<endl;
float a[20][20],e[20][20];//a是原矩阵,e是单位矩阵
int i,j,k,p;
float d,temp;
for(i=0;i<n;i++)
{
cout<<"第"<<i+1<<"行:";
for(j=0;j<n;j++)
cin>>a[i][j];
cout<<endl;
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
e[i][j]=0;
if(i==j)
e[i][j]=1;
}
//赋值
for(i=0;i<n-1;i++)
{
loop:if(a[i][i]!=0)
{
原文请找腾讯752018766优,文-论'文.网http://www.youerw.com
temp=a[i][p];
a[i][p]=a[i+1][p];
a[i+1][p]=temp;
}
goto loop;
}//换行
}
int t=1;
for(i=0;i<n;i++)
t=t*a[i][i];
if(t!=0)
{
cout<<"其逆矩阵为:"<<endl;
for(i=n-1;i>0;i--)
for(j=i-1;j>=0;j--)
{
d=a[j][i]/a[i][i];
for(int b=0;b<n;b++)
e[j][b]=e[j][b]-e[i][b]*d;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
e[i][j]=e[i][j]/a[i][i];
cout<<e[i][j]<<" ";
}
cout<<endl;
}
}
else
cout<<"该矩阵不可逆"<<endl;1861