现在我正在尝试编写一个程序,该程序可以接受一个包含一堆整数的输入文件,然后显示特定范围内的数字数量。例如:
如果输入文件有 20, 30, 40, 50, 60. 范围是 1-20, 21-40, 41-60
输出将是
1-20:1 21-40:2 41-60:3
等等
我是编程新手,所以我的代码有一点问题,我知道我很接近。我使用数组来存储它们,但我不确定如何制作一个适应文件中有多少整数的数组。所以这就是我到目前为止所得到的。(只是为了这个练习,我试图使数组存储 100 个整数的最大数量)。
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int ranges(int);
int main()
{
ifstream indata;
ofstream outdata;
indata.open("scores1.txt");
outdata.open("scoresoutput.txt");
if(!indata)
{
cout << "Unable to open file" << endl;
return 1;
}
int range1=0;
int range2=0;
int range3=0;
int range4=0;
int range5=0;
int range6=0;
int range7=0;
int range8=0;
const int max=100;
int score[max];
while(indata)
{
for(int i=0; i < max ; i++)
{
indata >> score[i];
indata.ignore(1);
if(0 <= score[i] <= 24)
{
range1++;
}
else if(25 <= score[i] <= 49)
{
range2++;
}
else if(50 <= score[i] <=74)
{
range3++;
}
else if(75<= score[i] <= 99)
{
range4++;
}
else if(100 <= score[i] <= 124)
{
range5++;
}
else if(125 <= score[i] <= 149)
{
range6++;
}
else if(150 <= score[i] <= 174)
{
range7++;
}
else if(175 <= score[i]<= 200)
{
range8++;
}
}
}
outdata << "Range" << setw(10) << "Number of Students" << endl <<
"0-24" << setw(10) << range1 << endl<<
"25-49" << setw(10) << range2 << endl <<
"50-74" << setw(10) << range3 << endl <<
"75-99" << setw(10) << range4 << endl <<
"100-124" << setw(10) << range5 << endl <<
"125-149" << setw(10) << range6 << endl <<
"150-174" << setw(10) << range7 << endl <<
"175-200" << setw(10) << range8 << endl;
return 0;
}
现在,输出只显示 0-24 100。有什么比我现在做的更简单的方法吗?