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

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

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

в начале все нормально, но при втором вводе a[i].name функция просто пропускается и идет сразу ввод a[i].time
Листинг программы
  1. #include "stdafx.h"
  2. #define N 2
  3. struct TRAIN
  4. {
  5. char name[20];
  6. int namber;
  7. char time[10];
  8. };
  9. int main()
  10. {
  11. struct TRAIN a[N];
  12. int i,x;
  13. for (i = 0; i < N; i++)
  14. {
  15. printf("name train ");
  16. fgets(a[i].name, 20, stdin);
  17. printf("\n");
  18. printf("time train ");
  19. fgets(a[i].time, 10, stdin);
  20. printf("\n");
  21. printf("number train ");
  22. scanf_s("%d", &a[i].namber);
  23. printf("\n");
  24. }
  25. printf("namber train ");
  26. scanf_s("%d", &x);
  27. printf("\n");
  28. for (i = 0; i < N;i++)
  29. if (a[i].namber == x)
  30. {
  31. puts(a[i].name);
  32. printf("\n");
  33. puts(a[i].time);
  34. printf("\n");
  35. printf("%d", a[i].namber);
  36. }
  37.  
  38. return 0;
  39. }

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

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

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы