Распечатать список студентов, упорядоченный по алфавиту - C (СИ)
Формулировка задачи:
Вот рабочая программа, но нужно распечатать список студентов, упорядоченный по алфавиту. Не знаю как это сделать
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> //#include <iostream.h> #include <locale.h> struct Spisok { char Fio[20]; char Grup[10]; int Ot[3]; float S_Bal; }*sved; void Vvod(int nom, struct Spisok*sved) { setlocale(LC_ALL, "RUS"); printf("\n Введите сведения %d", (nom + 1)); puts("\n Fio -"); fflush(stdin); gets_s(sved->Fio); puts("Номер гр -"); fflush(stdin); gets_s(sved->Grup); float s = 0; for (int i = 0; i < 3; i++) { printf("\n Оценка %d->", i + 1); scanf_s("%d", &(sved->Ot[i])); s += sved->Ot[i]; } sved->S_Bal = s / 3; } void main(void){ setlocale(LC_ALL, "RUS"); struct Spisok Stud[50]; int i, N; char Bukva; puts("\n Введите количество < 50"); scanf_s("%d", &N); for (i = 0; i < N; i++) Vvod(i, &Stud[i]); puts("\n Список студентов :"); for (i = 0; i < N; i++) printf("\n %20s %10s %4.2f", Stud[i].Fio, Stud[i].Grup, Stud[i].S_Bal); //puts("\n Поиск фио по букве. Введите букву:"); puts("\n Введите фио студента:"); Bukva=getchar(); Bukva = getchar(); Bukva = getchar(); puts("\n Сведенье о студенте(ах): "); int kod_p = 0; for (i = 0; i < N;i++) if (Stud[i].Fio[0] == Bukva) { kod_p = 1; printf("\n %20s %10s %4.2f", Stud[i].Fio, Stud[i].Grup, Stud[i].S_Bal); } if (kod_p == 0) printf("\n Таких нет!\n"); printf("\nРабота программы завершина! Press any key..."); _getch(); }
Решение задачи: «Распечатать список студентов, упорядоченный по алфавиту»
textual
Листинг программы
printf("Students:\n"); for (i = 0; i < N; i++) { printf("%d %s\n", i, Stud[i].Fio); }
Объяснение кода листинга программы
- Код начинает с команды, которая отправляет сообщение
Students:
на стандартный вывод. - Затем следует цикл for, который начинается с i = 0 и продолжается до тех пор, пока i меньше N. Значение N, вероятно, содержит количество студентов в списке.
- Внутри цикла, для каждого студента в списке, код выводит сообщение, содержащее номер студента и его ФИО.
- Сообщение форматируется с использованием функции printf, которая принимает два аргумента: первый - это строка, которую нужно напечатать, а второй - это список аргументов, которые должны заменить местозаполнители в строке.
- Местозаполнитель %d соответствует номеру студента, а местозаполнитель %s соответствует ФИО студента.
- Каждое сообщение, включая номер студента и ФИО, выводится на новую строку с помощью символа перевода строки \n.
- Код не содержит никаких проверок ошибок или обработки исключений, поэтому предполагается, что список студентов корректно отсортирован по алфавиту и содержит только действительные ФИО.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д