Вывести информацию для курсантов определенной группы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго дня! помогите исправить согласно заданию: Составить программу на языке СИ с использованием структурных переменных: с клавиатуры в структурные переменные ввести следующую информацию о курсантах: Фамилия, группа, оценка. Введенные данные должны быть выведены на экран монитора по строкам(каждая строка содержит информацию о курсанте). Информацию вывести для курсантов определенной группы. Использовать массив из 5 структурных переменных. Для доступа к полям структурных переменных использовать указатели. Меня смущает вот это:
Для доступа к полям структурных переменных использовать указатели.
Вот мой код:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define n 5
 
int main()
{
    int i;
    char g2[100];
    struct kurs {
        char sn[100];
        char group[100];
        int rt;
                     } s;
    struct kurs st[n];
    printf("Vvedite informaciju o kursantah");
    printf("\n Familija, Gruppa, Ocenka \n");
 
    for (i=0; i<n; i++) {
        scanf("%s%s%d", s.sn, s.group, &s.rt);
        st[i] = s;
       }
    printf("\n Vvedite gruppu dlja vyvoda: ");
    scanf("%s", g2);
 
    for (i = 0; i < n; i++) {
        if (strcmp(g2, st[i].group) == 0) {
            printf ("\n %s  %s  %d", st[i].sn, st[i].group, st[i].rt);
        }
    }
    getch();
    return 0;
}

Решение задачи: «Вывести информацию для курсантов определенной группы»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define n 5
 
int main()
{
    int i;
    char g2[100];
    struct kurs {
        char sn[100];
        char group[100];
        int rt;
                     } s;
    struct kurs st[n];
    struct kurs *current;
    printf("Vvedite informaciju o kursantah");
    printf("\n Familija, Gruppa, Ocenka \n");
 
    current = &s;
    for (i=0; i<n; i++) 
    {
        scanf("%s%s%d", current->sn, current->group, ¤t->rt);
        st[i] = s;
    }
    printf("\n Vvedite gruppu dlja vyvoda: ");
    scanf("%s", g2);
 
    for (i = 0; i < n; i++) 
    {
        current = &st[i];
        if (strcmp(g2, current->group) == 0) 
        {
            printf ("\n %s  %s  %d", current->sn, current->group, current->rt);
        }
    }
    getch();
    return 0;
}

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

  1. Включаются необходимые заголовочные файлы
  2. Объявляются переменные: i, g2, s, st, current
  3. Устанавливается размер массива n равным 5
  4. Выполняется цикл for для ввода информации о курсантах
  5. Выполняется цикл for для вывода информации о курсантах определенной группы
  6. Выводится информация о курсантах определенной группы

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


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

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

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