diff --git a/3.c b/3.c new file mode 100644 index 0000000..1311ed7 --- /dev/null +++ b/3.c @@ -0,0 +1,67 @@ +#include + +struct Data +{ + int ID; + float score1; + float score2; + float score3; +} stu[1001]; +int stl = 0, sortstl; + +float total(struct Data* a) { + return a->score1 + a->score2 + a->score3; +} + +void swap(struct Data* a, struct Data* b) { + struct Data t = *a; + *a = *b; + *b = t; +} + +void input1() { + scanf("%d", &stu[stl].ID); + scanf("%f", &stu[stl].score1); + scanf("%f", &stu[stl].score2); + scanf("%f", &stu[stl].score3); + stl++; +} + + +void Input() { + printf("Please input info of three students:\n"); + input1();input1();input1(); + if (total(&stu[stl-3]) < total(&stu[stl-2])) swap(&stu[stl-3], &stu[stl-2]); + if (total(&stu[stl-2]) < total(&stu[stl-1])) swap(&stu[stl-2], &stu[stl-1]); + if (total(&stu[stl-3]) < total(&stu[stl-2])) swap(&stu[stl-3], &stu[stl-2]); + printf("%d,%.1f,%.1f\n", stu[stl-3].ID, total(&stu[stl-3]), total(&stu[stl-3])/3.0f); + printf("%d,%.1f,%.1f\n", stu[stl-2].ID, total(&stu[stl-2]), total(&stu[stl-2])/3.0f); + printf("%d,%.1f,%.1f\n", stu[stl-1].ID, total(&stu[stl-1]), total(&stu[stl-1])/3.0f); +} + +int main() { + printf(" 1.Input\n"); + printf(" 2.Output\n"); + printf(" 3.Order\n"); + printf(" 4.Quit\n"); + char t; + scanf("%c", &t); + switch(t) { + case 'i': + printf("You are trying to Input info\n"); + Input(); + break; + case 'o': + printf("You are trying to Output info\n"); + break; + case 'm': + printf("You are trying to Make things ordered\n"); + break; + case 'q': + printf("You are trying to Quit\n"); + break; + default: + printf("Wrong input\n"); + break; + } +} \ No newline at end of file