#include
#include
#define N 3
#define M 4
typedef struct student {
int id;
int score[M];
int sum;
float average;
} Student;
void sort(Student *stu, int n);
void print(Student *stu, int n);
int main() {
int i, j;
Student stu[N];
printf("输入学生的成绩:\n");
for (i = 0; i < N; i++) {
printf("第%d个学生:", i + 1);
scanf("%d", &(stu[i].id));
for (j = 0; j < M; j++) {
scanf("%d", &(stu[i].score[j]));
stu[i].sum += stu[i].score[j];
}
stu[i].average = (float) stu[i].sum / M;
}
sort(stu, N);
print(stu,N);
return 0;
}
void sort(Student *stu, int n) {
int i, j;
Student tmp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (stu[j].sum < stu[j + 1].sum) {
tmp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = tmp;
}
}
}
}
void print(Student*stu,int n)
{
int i,j;
printf("座号\t科目1\t科目2\t科目3\t科目4\t总分\t平均\n");
for (i = 0; i < n; i++)
{
printf("%d\t",stu[i].id);
for(j = 0; j < M; j++){
printf("%d\t",stu[i].score[j]);
}
printf("%d\t%0.2f\n",stu[j].sum,stu[i].average);
}
}
stu[j].sum
->
stu[i].sum