#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
struct A {
char name[10];
float math, eg, chinese, sum, order;
} student[10];
int cmpn1(A a, A b) {
return a.sum > b.sum;
}
int main() {
int N;
cout << "请输入班级人数" << endl;
cin >> N;
float sum[N], average;
cout << "请依次输入姓名,数学,英语,语文成绩" << endl;
for (int i = 0; i < N; i++) {
cin >> student[i].name;
cin >> student[i].math;
cin >> student[i].eg;
cin >> student[i].chinese;
}
//求和
for (int i = 0; i < N; i++) {
student[i].sum = student[i].math + student[i].eg + student[i].chinese;
}
sort(student, student + 10,
cmpn1);
// 结构体的排序
cout << "姓名 数学 英语 语文 总分 排名 " << endl;
for (int i = 0; i < N; i++) {
cout << student[i].name << " ";
cout << student[i].math << " ";
cout << student[i].eg << " ";
cout << student[i].chinese << " ";
cout << student[i].sum << " ";
cout << i + 1 << endl;
}
//平均分
cout << "平均分 ";
for (int i = 0; i < N; i++) {
sum[0] += student[i].math;
}
cout << sum[0] / N << " " ;
for (int i = 0; i < N; i++) {
sum[1] += student[i].eg;
}
cout << sum[1] / N << " " ;
for (int i = 0; i < N; i++) {
sum[2] += student[i].chinese;
}
cout << sum[2] / N << " " ;
for (int i = 0; i < N; i++) {
sum[3] += student[i].sum;
}
cout << sum[3] / N << " ";
//xieruwenjiano
fstream outfile;
outfile.open("teste.txt");
// 再次向文件写入用户输入的数据
outfile << "姓名 数学 英语 语文 总分 排名 " << endl;
for (int i = 0; i < N; i++) {
outfile << student[i].name << " " ;
outfile << student[i].math << " ";
outfile << student[i].eg << " " ;
outfile << student[i].chinese << " ";
outfile << student[i].sum << " ";
outfile << i + 1 << " " << endl;
}
outfile << "平均分" << " " ;
for (int i = 0; i < 3; i++) {
outfile << sum[i] / N << " " ;
}
outfile.close();
}
演示
文件