第六周作业二

来源:互联网 发布:苹果双系统删除mac 编辑:程序博客网 时间:2024/06/07 02:52

作业

3. 编程定义一个4X5矩阵和5X3矩阵,并计算它们的积。

4.编程输出1到n的平方的自然数构成的“魔方阵”,魔方阵是指它每一行和每一列及对角线之和均相等的方阵。

5.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。

程序1:

// disizhanglianxi2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include<iomanip>using namespace std;float A[4][5]={32,65,-23,56,14,15,9,25,41,35,67,42,65,52,35,71,19,29,34,38,};float B[5][3]={41,52,63,74,15,24,31,-41,65,-18,27,23,69,48,56,};float C[4][3];int main(){int a,b,c,d=0,e,f,g;for(a=0;a<4;a++){g=0;for(b=0;b<3;b++){c=5;e=0;f=0;while(c){C[a][b]+=A[d][e]*B[f][g];e++;f++;c--;}g++;}d++;}cout<<"A="<<endl;for(a=0;a<4;a++){for(b=0;b<5;b++)cout<<setw(8)<<setprecision(5)<<A[a][b];cout<<endl;}cout<<"B="<<endl;for(e=0;e<5;e++){for(f=0;f<3;f++)cout<<setw(8)<<setprecision(5)<<B[e][f];cout<<endl;}cout<<"C=AxB="<<endl;for(c=0;c<4;c++){for(d=0;d<3;d++)cout<<setw(8)<<setprecision(5)<<C[c][d];cout<<endl;}return 0;}


既然固定的矩阵能够计算,那自定义一个矩阵的计算也就不是难题了

程序2:稍作改动,即为一计算任意矩阵的程序了


// disizhanglianxi2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include<iomanip>using namespace std;//float A[4][5]={32,65,-23,56,14,15,9,25,41,35,67,42,65,52,35,71,19,29,34,38,};//float B[5][3]={41,52,63,74,15,24,31,-41,65,-18,27,23,69,48,56,};//float C[4][3];int main(){int a,b,c,d=0,e,f,g,i,k,m,n;float A[20][20],B[20][20],C[20][20];//由于定义数组时系统会开辟出一块空间,//在写程序时应考虑实际情况,够用就好,杜绝浪费do{cout<<"请确定第一个矩阵的行数i(i<=20)"<<endl;cin>>i;}while(i>20);do{cout<<"请确定第一个矩阵的列数k(k<=20)"<<endl;cin>>k;}while(k>20);do{cout<<"请确定第二个矩阵的行数m(应与第一矩阵列数相等)"<<endl;cin>>m;}while(m!=k);do{cout<<"请确定第二个矩阵的列数n(n<=20)"<<endl;cin>>n;}while(n>20);cout<<"输入第一个矩阵的元素"<<endl;for(a=0;a<i;a++)for(b=0;b<k;b++)cin>>A[a][b];cout<<"输入第二个矩阵的元素"<<endl;for(a=0;a<m;a++)for(b=0;b<n;b++)cin>>B[a][b];for(a=0;a<i;a++)//第一个矩阵的行数为新矩阵行数{g=0;for(b=0;b<n;b++)//第二个矩阵的列数为新矩阵列数{c=k;//这是由第一矩阵列数决定的e=0;f=0;while(c){C[a][b]+=A[d][e]*B[f][g];e++;f++;c--;}g++;}d++;}cout<<"A="<<endl;for(a=0;a<i;a++){for(b=0;b<k;b++)cout<<setw(8)<<setprecision(5)<<A[a][b];cout<<endl;}cout<<"B="<<endl;for(e=0;e<m;e++){for(f=0;f<n;f++)cout<<setw(8)<<setprecision(5)<<B[e][f];cout<<endl;}cout<<"C=AxB="<<endl;for(a=0;a<i;a++){for(b=0;b<n;b++)cout<<setw(8)<<setprecision(5)<<C[a][b];cout<<endl;}return 0;}

程序3:魔方





0 0
原创粉丝点击