C++ C+中的奇怪编码错误+;
我正在编写一个程序,从一个文本文件中读取由4列组成的多行数字,这些数字表示多个学生在一个教室中进行的4次测试 读完一行后,程序应该计算每个学生的平均成绩,然后给他们一个字母分数。我把它编码成这样。 问题是,尽管平均数是毫无问题地计算出来的,但第一个学生的字母分数不会显示出来。我是否忽略了一个错误 代码如下:C++ C+中的奇怪编码错误+;,c++,C++,我正在编写一个程序,从一个文本文件中读取由4列组成的多行数字,这些数字表示多个学生在一个教室中进行的4次测试 读完一行后,程序应该计算每个学生的平均成绩,然后给他们一个字母分数。我把它编码成这样。 问题是,尽管平均数是毫无问题地计算出来的,但第一个学生的字母分数不会显示出来。我是否忽略了一个错误 代码如下: #include <iostream> #include <fstream> using namespace std; int main() { ifst
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream calcGrades;
calcGrades.open ("grades.txt");
int test1, test2, test3, test4;
int studentNum = 1;
while(calcGrades.good())
{
calcGrades >> test1 >> test2 >> test3 >> test4;
int average = (test1 + test2 + test3 + test4)/4;
char letterGrade;
if(average<60)
letterGrade='F';
if(average<=60 && average<70)
letterGrade='D';
if(average>=70 && average<80)
letterGrade='C';
if(average>=80 && average<90)
letterGrade='B';
if(average>=90)
letterGrade='A';
cout << "Student " << studentNum
<< "'s average is " << average
<< " they currently have a " << letterGrade
<< "." << endl;
studentNum++;
}
return 0;
}
谢谢你给我的任何帮助,我一直为此而苦恼
我只是看不出哪里出了问题。正确的逻辑应该是:
if(average<60)
letterGrade='F';
else if(average>=60 && average<70)
// ^^
letterGrade='D';
else if(average>=70 && average<80)
letterGrade='C';
else if(average>=80 && average<90)
letterGrade='B';
else if(average>=90)
letterGrade='A';
if(平均值=60&&average=70&&average=80&&average=90)
等级为A级;
正确的逻辑应该是:
if(average<60)
letterGrade='F';
else if(average>=60 && average<70)
// ^^
letterGrade='D';
else if(average>=70 && average<80)
letterGrade='C';
else if(average>=80 && average<90)
letterGrade='B';
else if(average>=90)
letterGrade='A';
if(平均值=60&&average=70&&average=80&&average=90)
等级为A级;
另请参见“不知道谁投票关闭此网站”,因为缺少代码无效信息。观察到的输出被清楚地提到,代码是MCVE,并且提供了输入数据。更确切地说,它应该被标记为打字错误,一旦输入了打字错误,它就不可复制。“我把它编码成这样。”——计算机完全按照我们告诉它们的去做。如果观察到的结果不符合预期,我们没有告诉他们我们认为我们告诉了他们什么,并且必须检查我们的假设。;-)另请参阅“不知道是谁投票关闭此项”,因为缺少代码无法工作的信息。观察到的输出被清楚地提到,代码是MCVE,并且提供了输入数据。更确切地说,它应该被标记为打字错误,一旦输入了打字错误,它就不可复制。“我把它编码成这样。”——计算机完全按照我们告诉它们的去做。如果观察到的输出不符合预期,我们没有告诉他们我们认为我们告诉了他们什么,并且必须检查我们的假设。;-@VCP,任何关于声誉如何提高以及整个Stackoverflow如何运作的想法,我都是新手。@AtulAgarawal:。事实上,检查一下整个FAQ,它写得很好。@VCP,任何关于声誉如何提高以及整个Stackoverflow如何工作的想法,我都是新手。@AtulAgarawal:。事实上,检查整个FAQ,它写得很好。