我一直在处理一个家庭作业问题;这是描述:
编写一个程序,读取一个包含 0-200 范围内学生考试成绩的文件。然后,它应该确定得分在以下每个范围内的学生人数:0-24、25-49、50-74、75-99、100-124、125-149、150-174 和 175-200。输出分数范围和学生人数。(使用以下输入数据运行程序:76、89、150、135、200、76、12、100、150、28、178、189、167、200、175、150、87、99、129、149、 176、200、87、35、157、189。)
以下是我制作的程序:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
//declaring variables
ifstream myfile("data.txt");
double grades[26];
int i, studentNumber=0;
int score0_24=0, score25_49=0, score50_74=0,
score75_99=0, score100_124=0, score125_149=0,
score150_174=0, score175_200=0;
cout << score150_174 << endl;
//initializing grades array
for(i=0; i<26; i++)
{
grades[i] = 0;
cout << grades[i] << " ";
}
//getting data from text file
for(i=0; i<26; i++)
{
myfile >> grades[i];
cin.ignore(2);
studentNumber++;
}
myfile.close();
//finding number of people for each score range
for(i=0; i<26; i++)
{
if(grades[i] <= 24)
score0_24++;
if(grades[i] >= 25 && grades[i] <= 49)
score25_49++;
if(grades[i] >= 50 && grades[i] <= 74)
score50_74++;
if(grades[i] >= 75 && grades[i] <= 99)
score75_99++;
if(grades[i] >= 100 && grades[i] <= 124)
score100_124++;
if(grades[i] >= 125 && grades[i] <= 149)
score125_149++;
if(grades[i] >= 150 && grades[i] <= 174)
score150_174++;
if(grades[i] >= 175 && grades[i] <= 200)
score175_200++;
}
//outputing results
cout << "Number of students: " << studentNumber << endl;
cout << "0-24: " << score0_24 << endl;
cout << "25-49: " << score25_49 << endl;
cout << "50-74: " << score50_74 << endl;
cout << "75-99: " << score75_99 << endl;
cout << "100-124: " << score100_124 << endl;
cout << "125-149: " << score125_149 << endl;
cout << "150-174: " << score150_174 << endl;
cout << "175-200: " << score175_200 << endl;
return 0;
}
我拥有的文件与该项目位于同一文件夹中,称为:
数据.txt
并包含以下内容:
76, 89, 150, 135, 200, 76, 12, 100, 150, 28, 178, 189, 167, 200, 175, 150, 87, 99, 129, 149, 176, 200, 87, 35, 157, 189
当我运行程序时,它会在我从文件中读取数据的 for 循环中暂停。我已经尝试在之前和之后做一些 cout 语句,这似乎是问题所在。
帮助将不胜感激。