首先分析这道题的要求
1,定义一个结构体数组
2,计算学生总成绩并降序输出
则代码块可分为两部分
1,定义一个结构体数组,利用循环输入学生信息
2,计算学生总成绩,比大小后交换数值,然后利用循环输出
#include<stdio.h>
#define STU struct student
int main(void)
{
STU
{
int xuehao;
char name[10];
int math;
int English;
int wuli;
};
STU a[40],t;
int i, n;
printf("请确定人数");
scanf_s("%d", &n);
for (i = 1;i <= n;i++)
{
printf("请输入学号和姓名\n");
scanf_s("%d", &a[i].xuehao);
gets(a[i].name);
printf("请按序输入英语,数学,物理的成绩\n");
scanf_s("%d%d%d", &a[i].English, &a[i].math, &a[i].wuli);
}
int sum[40];
for (i = 1;i <= n;i++)
{
sum[i] = a[i].English + a[i].math + a[i].wuli;
}
printf("按降序排列\n");
int b;
for (i = 1;i <= n;i++)
{
if (sum[i] < sum[i + 1])
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
b = sum[i];
sum[i] = sum[i + 1];
sum[i + 1] = b;
}
}
for (i = 1;i <= n;i++)
{
printf("姓名:%s,学号:%d,总成绩:%d", a[i].name, a[i].xuehao, sum[i]);
if (sum[i] < 100)
{
printf("%s要坚强要加油哦", a[i].name);
}
printf("\n");
}
return 0;
}