请使用VC6或使用[答题]菜单打开考生文件夹proj3下的工程proj3,其中定义的Matrix是一个用于表示矩阵的类。成员函数max_value的功能是求出所有矩阵元素中的最大值。例如,若有3×3矩阵
则调用max_value函数,返回值为3。请编写成员函数max_value。
要求:
补充编制的内容写在“//********333********”与“//********666********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//Matrix.h
#include <iostream>
#include <iomanip>
using namespace std;
const int M=18;
const int N=18;
class Matrix
int array[M][N];
public:
Matrix()
int getElement(int i,int j)constreturn array[i][j];
void setElement(int i,int j,intvalue)array[i][j]=value;
int max value()const;
void show(const char*s)const
cout<<endl<<s;
for(int i=0;i<M;i++)
cout<<endl;
for(int j=0;j<N;j++)
cout<<setw(4)<<array[i][j];
;
void readFromFile(const char*,Matrix&);
void writeToFile(char*,constMatrix&);
//main.cpp
#include"Matrix.h"
#include <fstream>
void readFromFile(const char* f,Matrix& m)
ifstream infile(f);
if(infile.fail ()) cerr<<"打开输入文件失败!"; return;
int k;
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
infile>>k;
m.setElement(i,j,k);
int Matrix::max value()const
//********333********
//********666********
int main()
Matrix m;
readFromFile(" ",m);
m.show("Matrix:");
cout<<endl<<"最大元素:"<<m.maxvalue()<<endl;
writeToFile(" ",m);
return 0;
参考答案:
int temp=0;
//定义整数变量temp,并赋值为零
for(int i=0;i<M;i++)//遍历矩阵的行
for(int j=0;j<N;j++)//遍历短阵的列
if(temp<array[i][j])//如果temp小于array[i][j]
temp=array[i][j];//把array[i][j]赋值给tempreturn temp; //返回temp
解析:
本题考查Matrix类,其中涉及构造函数、二维数组、成员函数和const函数。
主要考查考生对二维数组的掌握,题目要求成员函数max_value的功能是求出所有矩阵元素中的最大值。因此只要逐个元素比较即可,下标i和j作为矩阵行和列的标记,使用双层for循环来遍历数组中的所有元素。
主要考查考生对二维数组的掌握,二维数组使得存储的数据大幅增加,只要把二维数组想象成矩阵,利用矩阵相关知识求解即可。