У меня вопрос по массивам и функциям.Вот инструкции, которые относятся к той части, которую я закончил:
В течение семестра студенты, изучающие курс информатики, сдают 4 теста. Чтобы подсчитать оценку за курс, отбрасывается наименьшая оценка по тесту.Для определения буквенной оценки используются только 3 верхние тестовые оценки. Используя массивы, создайте программу, которая использует данные, расположенные в файле Scores.txt, чтобы вернуть буквенную оценку для каждого учащегося следующим образом:
- Создайте функцию с именем drop_test (), которая определяет наименьшую оценку за каждого учащегося.
Поэтому, когда я пытаюсь отладить ее, я получаю сообщение об ошибке # C4700, в котором говорится, что использовалась неинициализированная переменная - "low"на линии, где я вызываю функцию drop_test.Может кто-нибудь мне помочь?Я очень потерян и не знаю, что делать.Спасибо.
{
#include<iostream>
#include<fstream>
#include<iomanip>
#include<string>
using namespace std;
//Prototypes.
void dropped_test(int low, int T1[], int T2[], int T3[], int T4[], int i);
int main() {
//Declares
ifstream fin;
ofstream fout;
string name[100];
int T1[100], T2[100], T3[100], T4[100], low;
int i = 0;
int sumT; //Sum of the test scores after dropped test
int percent;
char grade;
int sumT1 = 0, sumT2 = 0, sumT3 = 0, sumT4 = 0, sumTotal = 0; //Running sums of the test scores for each column
//Open the files.
fin.open("scores.txt");
fout.open("grades.txt");
//Test if files opened.
if (fin) {
cout << "Processing..." << endl;
cout << endl;
}
else {
cout << "ERROR ID107: File not found." << endl;
cout << endl;
system("pause");
return 0;
}
//Remove the header.
fin.ignore(100, '\n');
//Input the data.
while (!fin.eof()) {
getline(fin, name[i], ',');
fin >> T1[i];
fin.ignore(5, ',');
fin >> T2[i];
fin.ignore(5, ',');
fin >> T3[i];
fin.ignore(5, ',');
fin >> T4[i];
fin.ignore();
}
//Calculate the lowest score.
/*low = T1[i];
if (low > T2[i])
low = T2[i];
if (low > T3[i])
low = T3[i];
if (low > T4[i])
low = T4[i];*/
//Dropped Test
dropped_test(low, T1, T2, T3, T4, i);
//Calculate the sum of the test scores.
sumT = T1[i] + T2[i] + T3[i] + T4[i] - low;
//Calculate the test grade.
percent = sumT / 3;
if (percent >= 90)
grade = 'A';
else if (percent >= 80)
grade = 'B';
else if (percent >= 70)
grade = 'C';
else if (percent >= 60)
grade = 'D';
else
grade = 'F';
//Calculate the running sums.
sumT1 = sumT1 + T1[i];
sumT2 = sumT2 + T2[i];
sumT3 = sumT3 + T3[i];
sumT4 = sumT4 + T4[i];
sumTotal = sumTotal + sumT;
cout << "Testing." << endl;
//Close files.
fin.close();
fout.close();
system("pause");
return 0;
}
void dropped_test(int low, int T1[], int T2[], int T3[], int T4[], int i = 0) {
low = T1[i];
if (low > T2[i])
low = T2[i];
if (low > T3[i])
low = T3[i];
if (low > T4[i])
low = T4[i];
i++;
}