我没有编程经验,我正在一类称为介绍C++工程师。我们目前正在学习如何使用else语句,并且为什么我的程序没有正确执行以及我犯了什么错误,我一直坚持了几天。使用多个如果C++ else语句
我需要创建一个计算并显示一个任期内采取两班的GPA的程序。我还没有学习循环,所以我需要硬编码两个类的计算和输入。问题是,当我为两个类输入任何等级信件时,它总是将第一个if语句视为在两种情况下都是真实的。
#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;
}
我很清楚,有更有效的方法可以做到这一点,但现在我刚学的基础知识,所以我将不胜感激保持相关课程的范围答案。
谢谢!
编辑:我想这可能是必要提及的是我的理解是双不需要的变量。在节目结束时,我也不需要操纵或任何cout。我只是想弄清楚出了什么问题。 :-)
等于'=='不是'='。修复并重试。 – NathanOliver
打开所有编译器警告。你可能打算写'if(grade =='A')'等 –
非常感谢,我不能相信修正那么简单。我觉得我好笨。 – DiddyMoe