我正试图自欺欺欺人,但这种做法问题是一个 to笑! 任何帮助都将受到高度赞赏。 我的法典和逻辑是正确的,但只有一点。
#include <iostream>
#include <fstream>
using namespace std;
void main()
{
ifstream fin;
int id, prev, score, scoree, high = 0, low = 0, total = 0, count = 1, counter = 0, counterr = 0;
double avg = 0;
fin.open("C:\Users\E\Desktop\Quizzes.dat");
fin >> prev;
fin >> score;
low = score;
high = score;
total = score;
while(!fin.eof())
{
fin >> id;
fin >> scoree; //Problem is that when the ID changes it still inputs a score which gets ignored
if ( counter == counterr && counter != 0 ) //Could of used a BOOL here...
{
high = scoree;
low = scoree;
total = 0;
count = 0;
}
if ( prev == id )
{
if (scoree > high)
{
high = scoree;
}
if (scoree < low)
{
low = scoree;
}
total = total + scoree;
count++;
counter = 0;
}
else
{
total = total - (high+low);
count = count - 2;
avg = total / count;
cout << "ID: " << prev << " " << "AVG: " << avg << endl;
prev = id;
counter++;
counterr++;
}
}
}
书面档案只是一份有身份证号码和记分的文件。 这里的想法是,如果“ID”与“ID”一样,它就记分。 应取消最高和最低的分数,其余应为平均分数。 因此,我的逻辑是,它不管怎样都增加了所有分数,而且只有在国际发展法发生变化之后,你才把最高和最低分数从总数中减去,然后从计数中减去2分。 问题在于,当我输入身份证及其不同之处时。 它还投入一分,新补贴的首分数得到伸缩。 任何帮助都将受到高度赞赏。