需要帮助定义循环控制变量(while loops)C++

Need help defining a Loop Control Variable (while loops) C++

本文关键字:while loops C++ 控制变量 帮助 定义 循环      更新时间:2023-10-16

我一直在想办法让程序使用什么循环控制变量(LCV(,但一直没有成功。

给出的信息如下:

你将提升一名学生的成绩和所修课程的学分。据此,你将计算出平均绩点。

  • 系统会提示输入课程名称,但不会对其执行任何操作
  • 我们只是使用A级、B级、C级、D级和F级,所以你不必做那么多打字
  • 您将需要使用"设置精度"命令,如本书所示。将其设置为"固定"answers"2">
  • 您需要使用本课程前面讨论过的"cin.ignore(("函数

票据

  • 我使用int total来计算类的数量
  • 当前的while语句是我最后一次尝试,它不正确

我的代码:

#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int main () {
cout << std::fixed << std::setprecision(2);
string course, grade, answer;
int credits, total = 0;
float gradePoints = 0, totalCredits = 0;
float gpa = 0.0;
while (grade <= "ABC") { 
cout << "Enter a course name: ";
getline(cin, course);
cout << course << endl;
cout << "Enter number of credits: ";
cin >> credits;
cout << credits << endl;
cout << "Enter your grade (A, B, C, D, F): ";
cin >> grade;
cout << grade << endl;
cout << "Continue ('Yes' or 'No')? ";
cin >> answer;
cout << answer << endl;
if (grade == "A") {
gradePoints = gradePoints + 4;
}
else if (grade == "B") {
gradePoints == gradePoints + 3; 
}
else if (grade == "C") {
gradePoints = gradePoints + 2;
}
else if (grade == "D") {
gradePoints = gradePoints + 1;
}
else if (grade == "F") {
gradePoints = 0;
}
total = total + 1;
totalCredits = totalCredits + credits;
}
gpa = (total * gradePoints)/ totalCredits;

return 0;
}

根据程序其余部分的编写方式,我认为您应该检查用户对"继续?"问题的回答。类似这样的东西:

bool answer = true;
while (answer) {
// code
// when ready to exit...
answer = false;
}

也就是说,使用do-while循环可能更有意义,其中第一个块在检查条件之前执行:

do {
// code
} while (answer != "No");

当你这样做的时候,你可能还想考虑使用一个不同的标志,而不是让用户键入"是"或"否"。像yn这样的东西更常见,也更简单一些。

"while (grade <= "ABC")"

如果意图是说只在等级值为a、B或C时进行循环,则:

while(grade == "A" || grade == "B" || grade == "C")