学生構造:学生を記述するための構造(学生ID、名前、言語の達成、数学の成績、英語の達成のスコア、平均スコア)、情報処理のために今30人、30人の入力の基本的な情報( - 名前 - アウト - 平均学校形式)と平均スコアと総合スコアを算出し、降順で印刷情報に応じて整理。
#include <stdio.h>
#define N 30
typedef struct {
int num;
char name[20];
float chinese;
float math;
float english;
float sum;
float avg;
} Student;
void main() {
Student s[N], t;
int i, j;
/* 信息录入 */
for (i = 0; i < N; i++) {
scanf("%d%s%f%f%f", &s[i].num, &s[i].name, &s[i].chinese, &s[i].math, &s[i].english);
s[i].sum = s[i].chinese + s[i].math + s[i].english;
s[i].avg = s[i].sum / 3;
}
/* 总分排序 */
for (i = 0; i < N - 1; i++)
for (j = 0; j < N - 1 - i; j++)
if (s[j].sum < s[j + 1].sum) {
t = s[j];
s[j] = s[j + 1];
s[j + 1] = t;
}
/* 打印信息 */
for (i = 0; i < N; i++) {
printf("%d-%s-%.2f-%.2f\n", s[i].num, s[i].name, s[i].sum, s[i].avg);
}
}