지금은 일련의 정수가있는 입력 파일을 취할 수있는 프로그램을 작성한 다음 특정 범위의 숫자를 표시하려고합니다. 예를 들어, 입력 파일이 20, 30, 40, 50, 60을 가지며, 범위 1-20, 21-40, 아르파일에서 정수를 읽는 배열로 루프를 실행하고 범위에 따라 정렬하십시오. C++
경우 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을 표시합니다. 지금 내가하는 일보다 쉬운 방법은 무엇입니까?
그것을
하고있는 동안 루프 내부에 대한 루프에서
배열을 사용하여 범위를 처리하고 수식을 사용하여 상한과 하한을 처리하는 것이 좋습니다. – keelar