首页 > 解决方案 > 根据输入的等级输出正确的字母等级

问题描述

每次我在程序中输入三个等级时,它都会输出正确的百分比数字,但不是正确的字母等级。例如,如果我将我的三个等级都输入为 100,它会输出:你的平均分是 100,你的字母等级是 F。我该如何解决这个问题才能让它根据每个百分比说出正确的字母等级?

我的代码:

    /*Write a program to read 3 grades. Grades are between 0-100. Calculate the average, then print the 
    following message. */
    #include<iostream>

    using namespace std;

    void main() {
    int grade1{};
    int grade2{};
    int grade3{};
    int average{};
    int sum{};

    cout << "Enter 3 grades (as a number between 0-100): " << endl;
    cin >> grade1 >> grade2 >> grade3;

    sum = (grade1 + grade2 + grade3);
    average = (sum / 3);

    if (grade1+grade2+grade3/3 <= 100)
    {
        cout << "Your average is: " << average << "," << " your letter grade is A." << endl;
    }
    else if (grade1+grade2+grade3/3 <= 89)
    {
        cout << "Your average is: " << average << "," << " your letter grade is B." << endl;
    }
    else if (grade1+grade2+grade3/3 <= 79)
    {
        cout << "Your average is: " << average << "," << " your letter grade is C." << endl;
    }
    else if (grade1+grade2+grade3/3 <= 69)
    {
        cout << "Your average is: " << average << "," << " your letter grade is D." << endl;
    }
    else
    {
        cout << "Your average is: " << average << "," << " your letter grade is F." << endl;
    }
}

标签: c++

解决方案


grade1+grade2+grade3/3是错的。在 C++ 中除法是在加法之前计算的,所以只grade3除以 3grade1而不grade2除。

你已经计算过了average,所以你应该使用它而不是错误的公式。

情况也看起来不对。看来您应该使用>=or >(根据规范)而不是<=.


推荐阅读