1、从键盘输入3名学生的学号、姓名和C语言成绩,输出最高分,最低分,平均分,并按由高到低的顺序输出学生的成绩。
#include "stdio.h"
#define N 3
typedef struct stu {
int sno;
char sname[10];
float grade;
} ST;
float max(ST a[], int n);
float low(ST a[], int n);
float sum(ST a[], int n);
void sort(ST a[], int n);
int main() {
ST a[N];
int i;
for (i = 0; i < 3; i++) {
scanf("%d%s%f", &a[i].sno, a[i].sname, &a[i].grade);
}
printf("max is %f\n", max(a, N));
printf("low is %f\n", low(a, N));
printf("average is %f\n", sum(a, N) / N);
sort(a, N);
for (i = 0; i < 3; i++) {
printf("%d\t%s\t%f\n", a[i].sno, a[i].sname, a[i].grade);
}
return 0;
}
float max(ST a[], int n) {
float x = -1e9;
for (int i = 0; i < n; i++) {
if (x < a[i].grade)
x = a[i].grade;
}
return x;
}
float low(ST a[], int n) {
float x = 1e9;
for (int i = 0; i < n; i++) {
if (x > a[i].grade)
x = a[i].grade;
}
return x;
}
float sum(ST a[], int n) {
float x = 0;
for (int i = 0; i < n; i++)
x += a[i].grade;
return x;
}
void sort(ST a[], int n) {
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (a[i].grade < a[j].grade) {
stu x = a[i];
a[i] = a[j];
a[j] = x;
}
}
}
}