ADD file via upload

main
pk29n3fu4 6 days ago
parent 24e7e519e4
commit 3283f9ba37

@ -0,0 +1,81 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
typedef struct {
char id[20];
char clas[20];
char name[20];
double score1;
double score2;
double score3;
double totalScore;
} Student;
// Comparison function for sorting
int compareStudents(const void *a, const void *b) {
Student *studentA = (Student *)a;
Student *studentB = (Student *)b;
int classComparison = strcmp(studentA->clas, studentB->clas);
if (classComparison != 0) {
return classComparison;
} else {
return (studentB->totalScore - studentA->totalScore > 0) ? 1 : -1;
}
}
void modifyStudent(Student students[], int *count) {
char id[20], clas[20], name[20];
double score1, score2, score3;
printf("Enter student id to modify: ");
scanf("%s", id);
for (int i = 0; i < *count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("Enter class, name, score1, score2, score3: ");
scanf("%s %s %lf %lf %lf", clas, name, &score1, &score2, &score3);
strcpy(students[i].clas, clas);
strcpy(students[i].name, name);
students[i].score1 = score1;
students[i].score2 = score2;
students[i].score3 = score3;
students[i].totalScore = score1 + score2 + score3;
qsort(students, *count, sizeof(Student), compareStudents);
printf("Student modified.\n");
return;
}
}
printf("Student not found.\n");
}
void printStudents(const Student students[], int count) {
for (int i = 0; i < count; i++) {
if (i == 0 || strcmp(students[i].clas, students[i-1].clas) != 0) {
printf("%s ", students[i].clas);
}
printf("%s %s %.1f %.1f %.1f", students[i].id, students[i].name, students[i].score1, students[i].score2, students[i].score3);
if (i == count - 1 || strcmp(students[i+1].clas, students[i].clas) != 0) {
printf(" \n");
} else {
printf(" modified\n");
}
}
}
int main() {
Student students[MAX_STUDENTS] = {
{"10001", "11", "Zhang", 99.5, 88.5, 89.5, 277.5},
{"10002", "12", "Yang", 77.9, 56.5, 87.5, 221.9},
{"10003", "11", "Liang", 92.5, 99.0, 60.5, 252.0}
};
int studentCount = 3;
qsort(students, studentCount, sizeof(Student), compareStudents);
modifyStudent(students, &studentCount);
printStudents(students, studentCount);
return 0;
}
Loading…
Cancel
Save