我正在使用 C++ 进行作业,并且我已经在同一点上停留了好几天,我知道我忽略了一些东西,但我不知道它是什么。
问题是:
m只狗在n 个类别中竞争,每只都得到 0 到 10 之间的分数。绝对获胜的狗(总分最高的那只)赢得了多少个类别?
我应该使用简单的计算方法,例如:最大搜索、线性搜索、对数搜索、计数、数组求和等。所以我不能使用max(a, b)
或类似的东西。
我的程序目前的结构如下:
有一个求和函数将向量作为输入并告诉我总和
一个
MaxSearch
函数,将整个矩阵作为输入,然后使用求和矩阵找到具有最大点的行(这将是绝对胜者狗的行索引)
然后我尝试了多种不同的选项从这里继续,但它们都不起作用,这是我到目前为止使用的函数,“mat”是我从文件或控制台获得的输入矩阵:
int ArraySum(const vector<int>& z)
{
int s=0;
for(unsigned i=0; i<z.size(); i++) s+=z[i];
return s;
}
int MaxRow(const vector<vector <int> >& mat)throw(Range_Error)
{
if(mat.size()==0) throw EmptyRange;
int maxrow=ArraySum(mat[0]);
int ind=0;
for(unsigned i=1; i<mat.size();++i){
int s=ArraySum(mat[i]);
if(s>maxrow){
maxrow=s;
ind=i;}
}
return ind;
}
//And this is where I am stuck