在C+中使用多个if-else语句+; 我没有编程经验,我正在上一个叫C++的工程师的课。我们目前正在学习如何使用if-else语句,几天来我一直在思考为什么我的程序不能正确执行以及我在哪里犯了错误

在C+中使用多个if-else语句+; 我没有编程经验,我正在上一个叫C++的工程师的课。我们目前正在学习如何使用if-else语句,几天来我一直在思考为什么我的程序不能正确执行以及我在哪里犯了错误,c++,C++,我需要创建一个程序来计算和显示一学期内两门课的平均成绩。我还没有学习循环,所以我需要对这两个类的计算和输入进行硬编码。问题是,当我为这两个类输入任何分数字母时,在这两种情况下,第一个if语句总是为true #include <iostream> #include <iomanip> using namespace std; int main() { double gpa, qualityPoints, qualityPoints1, qualitypoint

我需要创建一个程序来计算和显示一学期内两门课的平均成绩。我还没有学习循环,所以我需要对这两个类的计算和输入进行硬编码。问题是,当我为这两个类输入任何分数字母时,在这两种情况下,第一个if语句总是为true

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{

    double gpa, qualityPoints, qualityPoints1, qualitypointsTotal, totalCredits, credits, credits1;
    double cqPoints, cqPoints1;
    char grade, grade1;

    cout << "Grade Point Average Calculator" << endl << endl;

    cout << "Enter the grade letter received for the first class: " << endl;
    cin >> grade;

    if (grade = 'A')
    {
        qualityPoints = 4.0;
    }
    else if (grade = 'B')
    {
        qualityPoints = 3.0;
    }
    else if (grade = 'C')
    {
        qualityPoints = 2.0;
    }
    else if (grade = 'D')
    {
        qualityPoints = 1.0;
    }

    else if (grade = 'F')
    {
        qualityPoints = 0.0;
    }

    else
    {
        cout << "Invalid Letter Grade" << endl;
    }

    cout << "How many credit hours was the class worth?" << endl;
    cin >> credits;

    cqPoints = qualityPoints * credits;

    cout << "Enter the grade letter received for the second class: " << endl;
    cin >> grade1;

    if (grade1 = 'A')
    {
        qualityPoints1 = 4.0;
    }
    else if (grade1 = 'B')
    {
        qualityPoints1 = 3.0;
    }
    else if (grade1 = 'C')
    {
        qualityPoints1 = 2.0;
    }
    else if (grade1 = 'D')
    {
        qualityPoints1 = 1.0;
    }
    else if (grade1 = 'F')
    {
        qualityPoints1 = 0.0;
    }

    else
    {
        cout << "Invalid Letter Grade" << endl;
    }
    cout << "How many credit hours was the class worth?" << endl;
    cin >> credits1;

    cqPoints1 = qualityPoints1 * credits1;

    totalCredits = credits + credits1;

    cout << "Total credit hours earned this term: " << totalCredits << endl;

    qualitypointsTotal = cqPoints + cqPoints1;

    gpa = qualitypointsTotal / totalCredits;

    cout << "Your GPA for this term is: " << gpa << endl;


    cout << "Credits: " << credits << endl;
    cout << "Credits1: " << credits1 << endl;
    cout << "qualityPoints: " << qualityPoints << endl;
    cout << "qualityPoints1: " << qualityPoints1 << endl;
    cout << "cqPoints: " << cqPoints << endl;
    cout << "cqPoints1: " << cqPoints1 << endl;
    cout << "qualitypointsTotal: " << qualitypointsTotal << endl;
    cout << "totalCredits: " << totalCredits << endl;
    return 0;

}
#包括
#包括
使用名称空间std;
int main()
{
双gpa、资格点数、资格点数1、资格点数总计、总学分、学分、学分1;
双cqPoints,cqPoints1;
煤焦级,一级;

cout这是因为在if语句中使用赋值运算符“=”,而不是比较运算符“=”。因此,您不是在比较分数,而是在给它赋值

有几种方法可以减少这类问题。一种是尽可能多地将变量声明为“const”;这将把不需要的赋值标记为错误。另一种是反转if语句中的变量和文字值(即if('A'==Grade)),这具有相同的效果


此外,如果您打开所有编译器警告,您可能也会收到一个警告。这当然取决于您的编译器。

equals是
=
而不是
=
。请修复此问题,然后重试。打开所有编译器警告。您可能打算编写
if(grade='a')
等等。非常感谢,我不敢相信修复程序会这么简单。我觉得自己很愚蠢。非常感谢你的回答和回复,我不敢相信我犯了一个如此严重的错误,根本不知道这是问题所在。它现在运行得非常顺利,我终于可以准确地运行基本程序了。现在我需要弄清楚如何显示我想知道我是否需要使用更多的if语句…无论如何,非常感谢!!