ADD file via upload

pull/2/head
p8sljnpht 6 days ago
parent 4f8a1440cc
commit f6896899b5

100
6.c

@ -0,0 +1,100 @@
#include <stdio.h>
#include <string.h>
struct Data
{
int ID;
int Class;
float score1;
float score2;
float score3;
char name[101];
} stu[1001];
int stl = 0;
struct Data* stuflag = 0;
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;
if (a == stuflag) stuflag = b;
else
if (b == stuflag) stuflag = a;
}
void Sort() {
int i, j;
for(i = 0; i < stl-1; i++) {
for (j = 0; j < stl-i-1; j++) {
if (stu[j].Class < stu[j+1].Class) continue;
if (stu[j].Class > stu[j+1].Class ||
total(&stu[j]) < total(&stu[j+1])) swap(&stu[j], &stu[j+1]);
}
}
}
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);
}
void Modify() {
struct Data t;
scanf("%d", &t.ID);
scanf("%d", &t.Class);
scanf("%s", t.name);
scanf("%f", &t.score1);
scanf("%f", &t.score2);
scanf("%f", &t.score3);
int i;
for(i=0; i<stl; i++) {
if (t.ID == stu[i].ID) {
stu[i] = t;
stuflag = stu + i;
break;
}
}
Sort();
for(i=0; i<stl; i++) {
if (i>0 && stu[i].Class == stu[i-1].Class) printf(" ");
else printf("%2d ", stu[i].Class);
printf("%d %s %2.1f %2.1f %2.1f", stu[i].ID, stu[i].name,
stu[i].score1, stu[i].score2, stu[i].score3);
if (stuflag == stu + i) printf(" modified");
printf("\n");
}
}
int main() {
stu[0] = (struct Data){10001, 11, 99.5, 88.5, 89.5, "Zhang"};
stu[1] = (struct Data){10002, 12, 77.9, 56.5, 87.5, "Yang"};
stu[2] = (struct Data){10003, 11, 92.5, 89.0, 60.5, "Liang"};
stl = 3;
Modify();
}
Loading…
Cancel
Save