c++ - 将显示数组的 5 个 for 循环压缩为 1?

标签 c++ arrays for-loop if-statement coding-style

有没有办法将五个 for 循环压缩为一个,并让它们为每个循环显示不同的变量和字母?目前,我有一个循环和五个其他循环,并使用 if/else 来保持它的简洁,但这似乎是多余的,并且违背了制作循环的初衷。

所以我决定发布整个源代码,以便人们可以更多地了解我想要获得的东西。这是一个每次运行都会创建 100 个随机成绩的程序,我必须对它们进行排序,然后显示它们。我知道我可以做 5 个 for 循环,但我想编写更简洁、更高效的代码。

困难的部分是编写一个循环,它可以一致地显示 5 个数组,即使每次运行时数组的大小都会发生变化。

#include <iostream>
#include <vector>
using namespace std;

int main(){
    int grades[100];
    int sizeA=0, sizeB=0, sizeC=0, sizeD=0, sizeF=0;
    std::vector<int> gradeA, gradeB, gradeC, gradeD, gradeF;

    srand(time(NULL));

    for(int i = 0; i < 100; i++){
        grades[i] = rand() % 100 + 1;  
    }

    for(int i = 0; i < 100; i++){
        if (grades[i] < 100 || grades[i] > 0){
            if (grades[i]>=90)
                gradeA.push_back(grades[i]);
            else if (grades[i]>=70)
                gradeB.push_back(grades[i]);
            else if (grades[i]>=50)
                gradeC.push_back(grades[i]);
            else if (grades[i]>=20)
                gradeD.push_back(grades[i]);
            else if (grades[i])
                gradeF.push_back(grades[i]);
        } else {
            cout << "uhh.. ";
            return(0);
        }
    }

    sizeA = gradeA.size();
    sizeB = gradeB.size();
    sizeC = gradeC.size();
    sizeD = gradeD.size();
    sizeF = gradeF.size();


    /**toggle ? showgrades(gradeA, size) : (int?)null;**/

}   

最佳答案

如何使用函数进行循环并使用所需信息调用它

void printGrades(const std::vector<int>& grades, char level) {
  cout << num << " " << level << " students: ";
  for(int i = 0; i < grades.size(); i++){
    cout << grades[i] << " ";
  cout << endl;
}

所以当你想打印它们时:

printGrades(gradeA, 'A');
printGrades(gradeB, 'B');
printGrades(gradeC, 'C');
printGrades(gradeD, 'D');
printGrades(gradeF, 'F');

关于c++ - 将显示数组的 5 个 for 循环压缩为 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48457105/

相关文章:

Javascript:如何从页面获取图像字节(无需重新下载)

java - 如何从字符串中获取最后一个数字,如 12345678910111213 (数字从 1 到 13 之间没有任何空格)

javascript - 在 2D Javascript 数组中搜索值索引

javascript - For 循环中的 jQuery 和 setTimeout

python - 如何用for循环影响列表的显示?

c++ - 石头,布,剪刀,奇数输出

c++ - 如何在 Haxe 项目中使用简单的 C++ 代码?

javascript嵌套forEach,typeError

c++ - DirectShow 示例过滤器 : How to Use?

c++ - eclipse -C++ "Launch Failed"