找出一行有多少个最大列值
Find how many maximum column values a row has
我正在用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
我希望我已经理解你的问题了。更少的文字和更多的代码:
int MaxValueRow(const vector<vector <int> >& mat, int col)
{
int m = math.size();
int ind = 0;
int maxPoints = mat[0][col];
for (int r = 1; r < m; r++) {
if (mat[r][col] > maxPoints) {
maxPoints = mat[r][col];
ind = r;
}
}
return ind; // The correct return value is ind
}
int CountWins(const vector<vector <int> >& mat)
{
int winnerRow = MaxRow(mat);
int count = 0;
int n = mat[0].size();
for (i = 0; i < n; i++) {
if (MaxValueRow(i) == winnerRow)
count++;
}
return count;
}
其中MaxValueRow(col)
返回该列值最大的行
相关文章:
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 复制列表初始化的隐式转换的等级是多少
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 从C++dll访问C#中的一行主要参数
- while循环中while循环的时间复杂度是多少
- 在C++中,我如何接受不同于同一行的用户输入
- 如何检查一个c++字符串中有多少相同的字符/数字
- C++有多少类型的循环
- 如何从一行中读取特定数量的字符?(C++)
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 在条件变量中触发错误信号的频率是多少
- 读取最后一行代码算法 - c++ 时出现问题
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 从 stdio 获取一行空格分隔的整数,而不知道它们是多少 (C++)
- 我怎样才能知道在C/C++代码的每一行上花费了多少时间
- c++检查向量中一行中有多少相同的元素
- 找出一行有多少个最大列值
- 在不知道要输入多少个int的情况下,如何在c++的一行中输入多个int呢?
- 如何在不知道一行文本有多少元素的情况下读取每个元素?(c++)