• Предмет: Информатика
  • Автор: Аноним
  • Вопрос задан 5 месяцев назад

Помощь пожалуйста! Даю 100 баллов!
Надо сделать это задание на языке "C"
Пожалуйста сделать все по заданию!


Те кто будет писать бред чтобы забрать баллы, улетают в бан!


Задание:
Составить программу, обрабатывающую следующие данные о школе: Ф.И.О. ученика, название класса,
оценка. Отсортировать по:
• фамилией учащегося;
• оценкой.

Ответы

Ответ дал: Wh1ter
1

Ответ:

#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;

}

Вас заинтересует