Не работает функция ввода - C (СИ)

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

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

в начале все нормально, но при втором вводе a[i].name функция просто пропускается и идет сразу ввод a[i].time
#include "stdafx.h"
#define N 2
 
struct TRAIN
{
    char name[20];
    int namber;
    char time[10];
};
 
int main()
{
    struct TRAIN a[N];
    int i,x;
    for (i = 0; i < N; i++)
    {
        printf("name train  ");
        fgets(a[i].name, 20, stdin);
        printf("\n");
        printf("time train  ");
        fgets(a[i].time, 10, stdin);
        printf("\n");
        printf("number train  ");
        scanf_s("%d", &a[i].namber);
        printf("\n");
    }
    printf("namber train  "); 
    scanf_s("%d", &x);
    printf("\n");
    for (i = 0; i < N;i++)
        if (a[i].namber == x)
        {
            puts(a[i].name);
            printf("\n");
            puts(a[i].time);
            printf("\n");
            printf("%d", a[i].namber);
        }

    return 0;
}

Решение задачи: «Не работает функция ввода»

textual
Листинг программы
for (i = 0; i < N; i++)
    {
        printf("name train  ");
        scanf_s("%s", a[i].name, 20u);
        printf("\n");
        printf("time train  ");
        scanf_s("%s", a[i].time, 10u);
        printf("\n");
        printf("number train  ");
        scanf_s("%d", &a[i].namber);
        printf("\n");
    }

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

  1. Переменная i инициализируется значением 0.
  2. Условие цикла for проверяет, что значение переменной i меньше N.
  3. Если условие истинно, то выполняется тело цикла, иначе цикл завершается.
  4. В теле цикла происходит ввод данных с помощью функции scanf_s.
  5. Данные сохраняются в переменных a[i].name, a[i].time и a[i].namber.
  6. После завершения цикла значение переменной i увеличивается на 1.
  7. Процесс повторяется, пока значение переменной i меньше N.
  8. Если значение переменной i становится равным N, то цикл завершается.
  9. В результате выполнения цикла в массиве a хранятся введенные данные.

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


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

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

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