Помощь пожалуйста! Даю 100 баллов!
Надо сделать это задание на языке "C"
Пожалуйста сделать все по заданию!
Те кто будет писать бред чтобы забрать баллы, улетают в бан!
Задание:
Составить программу, обрабатывающую следующие данные о школе: Ф.И.О. ученика, название класса,
оценка. Отсортировать по:
• фамилией учащегося;
• оценкой.
Ответы
Ответ:
#include <stdio.h>
#include <string.h>
typedef struct {
char full_name[128];
char class_name[128];
float grade;
} Student;
int compare_by_last_name(const Student* s1, const Student* s2) {
char last_name1[128], last_name2[128];
sscanf(s1->full_name, "%*s %s", last_name1);
sscanf(s2->full_name, "%*s %s", last_name2);
return strcmp(last_name1, last_name2);
}
int compare_by_grade(const Student* s1, const Student* s2) {
return (s1->grade > s2->grade) - (s1->grade < s2->grade);
}
int main(int argc, char* argv[]) {
Student students[5];
for (int i = 0; i < 5; i++) {
printf("Enter data for student %d:\n", i+1);
printf("Full name: ");
scanf("%s", students[i].full_name);
printf("Class name: ");
scanf("%s", students[i].class_name);
printf("Grade: ");
scanf("%f", &students[i].grade);
}
qsort(students, 5, sizeof(Student), (int (*)(const void*, const void*))compare_by_last_name);
printf("\nStudents sorted by last name:\n");
for (int i = 0; i < 5; i++) {
printf("%s %s %.2f\n", students[i].full_name, students[i].class_name, students[i].grade);
}
qsort(students, 5, sizeof(Student), (int (*)(const void*, const void*))compare_by_grade);
printf("\nStudents sorted by grade:\n");
for (int i = 0; i < 5; i++) {
printf("%s %s %.2f\n", students[i].full_name, students[i].class_name, students[i].grade);
}
return 0;
}