Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 需要帮助定义循环控制变量(while loops)C++;_C++ - Fatal编程技术网

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

C++ 需要帮助定义循环控制变量(while loops)C++;,c++,C++,我一直在试图找出什么循环控制变量(LCV)用于我的程序工作,但我一直没有成功 所提供的资料如下: 你将提升一名学生所修课程的分数和学分。由此,您将计算GPA 系统会提示输入课程名称,但不会对其进行任何操作 我们只使用A级、B级、C级、D级和F级,这样你就不用打字了 您需要使用本书中所示的“设置精度”命令。将其设置为“固定”和“2” 您需要使用本课程前面讨论的“cin.ignore()”函数 注释 我使用inttotal来计算类的数量 当前的,而语句是我最后一次尝试,它是不正确的 我的代码

我一直在试图找出什么循环控制变量(LCV)用于我的程序工作,但我一直没有成功

所提供的资料如下:

你将提升一名学生所修课程的分数和学分。由此,您将计算GPA

  • 系统会提示输入课程名称,但不会对其进行任何操作
  • 我们只使用A级、B级、C级、D级和F级,这样你就不用打字了
  • 您需要使用本书中所示的“设置精度”命令。将其设置为“固定”和“2”
  • 您需要使用本课程前面讨论的“cin.ignore()”函数
注释

  • 我使用
    inttotal
    来计算类的数量
  • 当前的
    ,而
    语句是我最后一次尝试,它是不正确的
我的代码:

#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;
}
#包括
#包括
#包括
使用名称空间std;
int main(){

cout根据程序其余部分的编写方式,我认为您应该对照用户对“继续”问题的回答进行检查。类似如下:

bool answer = true;
while (answer) {
    // code

    // when ready to exit...
    answer = false;
}
也就是说,使用do while循环可能更有意义,其中第一个块在检查条件之前执行:

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

当你在使用它的时候,你可能还想考虑使用一个不同的标志,而不是用户的类型是“是”或“否”。像“代码> y和<代码> n>代码>是比较常见和更简单的。

你期望的是什么?<代码>等级,这里需要一个do while循环,这样你就可以检查<代码>答案< /代码>是“是”。.在一项旧作业中,我们必须测试一个人在提供姓名首字母和密码时是否可以访问他们的帐户。在该作业中,教授从未告诉我们姓名首字母是什么或正确的密码是什么。在他的解决方案中,他使用了“abc”“我认为这是一种按字典顺序检查的方法……我们还没有学会‘do while’循环,所以我不能使用它。像这样输入的区分大小写也是一种禁忌。我可能会自己做
while(stricmp(answer.c_str(),“no”);
(因为不幸的是,直接使用std::string进行不区分大小写的比较是荒谬的)@zzxyz是真的。这里很难给出详尽的指导,因为变量太多了。@AlexJohnson感谢您的输入,感谢您的编辑。这是我的第一篇文章,我为格式不好道歉。我不能做“边做边循环”,因为我们还没有在课堂上学习过,我真的不知道如何用o解决这个问题但是所有这些变量因为这是一门入门课,我所学的就是变量、作业、if和italic_u加粗'code'while循环。@marcus west不需要道歉。如果你必须使用
while
循环,那肯定还是有可能的。只需设置你的条件(括号内的部分)
true
开始,然后在您准备退出时将其设置为
false
。我将更新我的答案以显示我在说什么。如果您发现答案回答了您的问题,请随意投票或接受。@Alex Johnson我终于明白了你们两人的意思。我让我的代码工作了。我使用了while(answer=“Yes”)这不是我的意图,但我只是想看看这是否有效。不幸的是,它不起作用。当到达while循环时,字符串变量“grade”未初始化。
"while (grade <= "ABC")"
while(grade == "A" || grade == "B" || grade == "C")