You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.2 KiB
62 lines
2.2 KiB
1 year ago
|
#include <stdio.h>
|
||
|
|
||
|
struct student {
|
||
|
int xuehao;
|
||
|
int banji;
|
||
|
float gs;
|
||
|
float dy;
|
||
|
float dw;
|
||
|
float zcj;
|
||
|
char a[10];
|
||
|
};
|
||
|
|
||
|
int main() {
|
||
|
struct student b[4] = {10001, 11, 99.5, 88.5, 89.5, 0, " ",
|
||
|
10002, 12, 77.9, 56.5, 87.5, 0, " ",
|
||
|
10003, 11, 92.5, 99.0, 60.5, 0, " ",
|
||
|
0, 0, 0, 0, 0, 0, "inserted",
|
||
|
};
|
||
|
|
||
|
scanf("%d", &b[3].xuehao);
|
||
|
scanf("%d", &b[3].banji);
|
||
|
scanf("%f", &b[3].gs);
|
||
|
scanf("%f", &b[3].dy);
|
||
|
scanf("%f", &b[3].dw);
|
||
|
if (b[3].xuehao == b[0].xuehao)
|
||
|
printf("%d %d %.1f %.1f %.1f ", b[0].xuehao, b[0].banji, b[0].gs, b[0].dy, b[0].dw);
|
||
|
else if (b[3].xuehao == b[1].xuehao)
|
||
|
printf("%d %d %.1f %.1f %.1f ", b[1].xuehao, b[1].banji, b[1].gs, b[1].dy, b[1].dw);
|
||
|
else if (b[3].xuehao == b[2].xuehao)
|
||
|
printf("%d %d %.1f %.1f %.1f ", b[2].xuehao, b[2].banji, b[2].gs, b[2].dy, b[2].dw);
|
||
|
else {
|
||
|
for (int i = 0; i < 4; i++) { //计算总成绩
|
||
|
b[i].zcj = b[i].gs + b[i].dy + b[i].dw;
|
||
|
}
|
||
|
for (int i = 0; i < 3; i++) { //按总成绩排
|
||
|
序
|
||
|
for (int j = i + 1; j < 4; j++) {
|
||
|
struct student temp;
|
||
|
if (b[i].zcj < b[j].zcj) {
|
||
|
temp = b[i];
|
||
|
b[i] = b[j];
|
||
|
b[j] = temp;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
int k = 1;
|
||
|
for (int i = 1; k <= 4; i++) {
|
||
|
for (int j = 0; j < 4; j++) {
|
||
|
if (b[j].banji == i) {
|
||
|
printf("%d %d %.1f %.1f %.1f ", b[j].xuehao, b[j].banji, b[j].gs, b[j].dy, b[j].dw);
|
||
|
printf("%s", b[j].a);
|
||
|
printf("\n");
|
||
|
k++;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
return 0;
|
||
|
}
|