#c #c 11
#c #c 11
Вопрос:
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
struct Students
{
char name[30];
char first_name[30];
int n1;
int n2;
int n3;
}student list[10];
int n;
void reading_student_list()
{
int i;
ifstream f("in.txt");
f>>n;
for(i=0;i<n;i )
{
f>>student_list[i].name;
f>>student_list[i].first_name;
f>>student_list[i].n1;
f>>student_list[i].n2;
f>>student_list[i].n3;
}
f.close();
}
void showing_student_list()
{
int i;
ofstream g("out.txt");
g<<"n Student list: ";
for(i=0;i<n;i )
{
g<<"nn";
g<<student_list[i].name<<" ";
g<<student_list[i].first_name<<" ";
g<<student_list[i].n1<<" ";
g<<student_list[i].n2<<" ";
g<<student_list[i].n3<<" ";
g<<endl<<"Average: "<<float(student_list[i].n1 student_list[i].n2 student_list[i].n3)/3;
}
cout<<"n Open file out.txt";
g.close();
}
int main()
{
reading_student_list();
showing_student_list();
}
Я сделал среднее значение для оценок на одного ученика, но я не могу понять, как найти среднее значение для всего класса.
После вычисления среднего значения для всего класса я могу определить учащихся, у которых среднее значение ниже среднего по классу и самое высокое среднее значение по классу.
Комментарии:
1. сложите все средние значения учащихся и разделите на
n
?2. Как я могу добавить средние значения всех учеников? Вот чего я не понимаю.
3. Напишите цикл, проходящий через учеников по одному и суммирующий оценки. Вы уже написали цикл для печати каждого учащегося, он ничем не отличается.
4. @john Не могли бы вы показать мне пример этого?
5.Одна из причин не использовать имена типа
n1
n2
иn3
заключается в том, что никто, кроме вас, не может сказать, что они означают. Я не знаю, какая из ваших переменных представляет оценки учащихся.
Ответ №1:
Вот как бы вы сложили все n1
значения (что бы это ни значило).
int total = 0; // start the total at zero
for (int i = 0; i < n; i ) // for each student
total = list[i].n1; // add list[i].n1 to total
Надеюсь, вы сможете адаптировать это в соответствии с вашими конкретными требованиями.
Комментарии:
1. Значит, я должен сделать это и для n2 и n3? Должен ли я делать это в функции void?
2. Я действительно не могу ответить ни на один из этих вопросов, вы знаете, что вас попросили сделать лучше меня. И второй вопрос касается стиля программирования, и на такие вопросы нет правильных или неправильных ответов. Делайте то, что имеет для вас наибольший смысл.