Распечатать список студентов, упорядоченный по алфавиту - 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.
- Код не содержит никаких проверок ошибок или обработки исключений, поэтому предполагается, что список студентов корректно отсортирован по алфавиту и содержит только действительные ФИО.