数组升序算法 c++
Array Ascending algorithm c++
我的升序函数算法遇到了一些问题。该函数 到达函数的最大元素,然后在每个位置设置它。例如,按以下顺序输入输入:88、72、81。然后你得到 88,88,88 而不是 72、81、88;
法典:
void orderGrades(Student grades[], int studentNumber){
int startScan, minIndex, minValue;
for(startScan = 0; startScan < (studentNumber - 1); startScan++){
minIndex = startScan;
minValue = grades[startScan].getGrade();
for(int index = startScan + 1; index < studentNumber; index++)
{
if(grades[index].getGrade() < minValue)
{
grades[index].setGrade(minValue);
minIndex = index;
}
}
grades[minIndex].setGrade(grades[startScan].getGrade());
grades[startScan].setGrade(minValue);
}
}
我不确定我用逻辑忽略了什么,所以我想看看其他人是否有不同的观点。
在不给你整个解决方案的情况下,我可以给你一个提示......在调试器中运行程序后,我看到在内部 for 循环中的 if 语句中,您覆盖了下一项的值,它永远丢失了;这将发生在外部 for 循环第一次迭代中的每个数组元素上(这就是为什么你在每个元素中得到 88 的原因)。幸运的是,您提供了一个失败的测试用例:-)
相关文章:
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 基于ELO的团队匹配算法
- C++选择排序算法中的逻辑错误
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- C++A*算法并不总是在路径中具有目标节点
- 排序算法c++
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 算法问题:查找从堆栈中弹出的所有序列
- 下面是排序算法O(n)吗
- KMP算法和LPS表构造的运行时间
- 为什么我的排序算法会更改数组值
- 求最大元素位置的分治算法
- 具有非整数边容量的最大流量的Dinic算法
- 到连接组件算法的问题(递归)
- STL算法函数在多个一维容器上的使用
- 读取最后一行代码算法 - c++ 时出现问题
- 括号更改 O(n) 算法
- std::unordered_map 搜索算法是如何实现的?
- 如何实现高效的算法来计算大型数据集的多个不同值?
- 如何在 Mac 上使用 c++17 并行标准库算法?