C++程序设计初级题目

1、实验内容或题目编写一个程序,计算一个M*N阶矩阵和一个N*M阶矩阵相乘,并输出结果矩阵,同时求出矩阵元素最大值、最小质及所有元素平均值。2、实验目的与要求⑴进一步熟悉... 1、 实验内容或题目
编写一个程序,计算一个M*N阶矩阵和一个N*M阶矩阵相乘,并输出结果矩阵,同时求出矩阵元素最大值、最小质及所有元素平均值。
2、实验目的与要求
⑴ 进一步熟悉熟悉VC++6编译环境,掌握运用VC编译C程序的基本方法
⑵ 掌握常见的流程控制结构,熟练掌握二维数组的定义与访问
⑶ 注意输出格式美观。
必须要二维数组
展开
 我来答
mfoonirlee
2008-11-08 · TA获得超过346个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:127万
展开全部
怎么这么像我学校的程序设计比赛题。。。正好:
#include<iostream>
#include<fstream>
#include<sstream>
#include<vector>

using namespace std;

typedef vector<vector<int> > mat;

void print1(const mat& a) //用于判别输入数是否成功和是否错误
{
for(int i=0;i<a.size();++i)
{
for(int j=0;j<a[i].size();++j)
cout<<"a["<<i<<"]["<<j<<"]"<<"="<<a[i][j]<<" ";
cout<<endl;
}
}

void print2(vector<int>& v,int m,int n,ofstream& out) //输出结果
{
for(int i=0;i<m;++i)
{
for(int j=0;j<n;++j)
out<<v[j+n*i]<<" ";
out<<endl;
}
}

void mul(mat& a,int m,int s,int n,ofstream& out) //进行矩阵乘法
{
int sum=0;
vector<int> v;

for(int x=0;x<m;++x)
{
for(int y=0;y<n;++y)
{

for(int z=0;z<s;++z)
sum+=a[x+1][z]*a[1+m+z][y];

v.push_back(sum);
sum=0;
}
}
print2(v,m,n,out);
}

int main()
{
ifstream in("matrix.txt");
ofstream out("estdout.pc2");

mat a;
int m,s,n;

for(string t;getline(in,t);)
{
vector<int> b;
istringstream sin(t);

for(int i;sin>>i;)
b.push_back(i);
a.push_back(b);
}

m=a[0][0];
s=a[0][1];
n=a[0][2];

// print1(a);
mul(a,m,s,n,out);
return 0;
}
额。。。没看到要用二维数组,我用二维向量做的。。。比较省事的方法,另外那个最大元素只要做个double for就好了。。。应该很容易吧。。。剩下的。。算了。。当我路过好了
百度网友81a9bfa
2008-11-09 · TA获得超过178个赞
知道小有建树答主
回答量:251
采纳率:0%
帮助的人:176万
展开全部
在清华版的《数据结构》上是作为例题讲的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式