Распечатать список студентов, упорядоченный по алфавиту - 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);
    }

Объяснение кода листинга программы

  1. Код начинает с команды, которая отправляет сообщение Students: на стандартный вывод.
  2. Затем следует цикл for, который начинается с i = 0 и продолжается до тех пор, пока i меньше N. Значение N, вероятно, содержит количество студентов в списке.
  3. Внутри цикла, для каждого студента в списке, код выводит сообщение, содержащее номер студента и его ФИО.
  4. Сообщение форматируется с использованием функции printf, которая принимает два аргумента: первый - это строка, которую нужно напечатать, а второй - это список аргументов, которые должны заменить местозаполнители в строке.
  5. Местозаполнитель %d соответствует номеру студента, а местозаполнитель %s соответствует ФИО студента.
  6. Каждое сообщение, включая номер студента и ФИО, выводится на новую строку с помощью символа перевода строки \n.
  7. Код не содержит никаких проверок ошибок или обработки исключений, поэтому предполагается, что список студентов корректно отсортирован по алфавиту и содержит только действительные ФИО.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы