Простая задача но не получается - C (СИ)

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

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

The menu: 0.Exit 1.Print menu again 2.Prime count matrix 3. Germain prime numbers in range. 4. Layers printing. Please enter your choice: Это должно отображаться при начале работы.Допустим что пользователь набирает только целы числа. когда нажимает 0+enter должна закрыться программа, при 1 опять должен напечатать все заново. При 2,3,4 уже другие команды. Важно то что если пользователь набирае 5 раз( не обязятельно подряд) числа больше 4 тогда должна закрыться программа. Есть идеи? Уже сломала голову

Решение задачи: «Простая задача но не получается»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. #ifdef _MSC_VER
  4. #define INLINE __forceinline
  5. #else
  6. #define INLINE inline
  7. #endif
  8.  
  9. #define WRONG_CMDS_LIMIT 5
  10.  
  11. static INLINE void show_menu()
  12. {
  13.     printf("The menu:\n");
  14.     printf("0. Exit.\n");
  15.     printf("1. Print menu again.\n");
  16.     printf("2. Prime count matrix.\n");
  17.     printf("3. Germain prime numbers in range.\n");
  18.     printf("4. Layers printing.\n");
  19.     printf("Please enter your choice: \n");
  20. }
  21.  
  22. int main()
  23. {
  24.     int cmd;
  25.     int wrong_cmds = 0;
  26.     while (1)
  27.     {
  28.         show_menu();
  29.         if ( (cmd > 4)
  30.              || (cmd < 0))
  31.         {
  32.             if (++wrong_cmds == WRONG_CMDS_LIMIT)
  33.                 return 1;
  34.         }
  35.         else if (cmd == 0)
  36.         {
  37.             return 0;
  38.         }
  39.         else if (cmd == 1)
  40.         {
  41.             ; // ничего не делаем
  42.         }
  43.         else if (cmd == 2)
  44.         {
  45.             // описываем то, что происходит при выборе пункта 2
  46.         }
  47.         else if (cmd == 3)
  48.         {
  49.             // описываем то, что происходит при выборе пункта 3
  50.         }
  51.         else if (cmd == 4)
  52.         {
  53.             // описываем то, что происходит при выборе пункта 4
  54.         }
  55.         printf("\n");
  56.     }
  57.     return 0;
  58. }

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

  1. Включаем заголовочный файл stdio.h для использования функций ввода-вывода.
  2. Определяем макрос INLINE для обеспечения встраивания функций.
  3. Устанавливаем значение WRONG_CMDS_LIMIT равным 5.
  4. Создаем функцию show_menu, которая выводит меню.
  5. В функции main создаем переменные cmd и wrong_cmds типа int.
  6. Запускаем бесконечный цикл while (1), который будет выполняться до тех пор, пока пользователь не введет команду со значением 0.
  7. Внутри цикла вызываем функцию show_menu для вывода меню.
  8. Проверяем значение команды cmd: если оно больше 4 или меньше 0, то увеличиваем счетчик wrong_cmds на 1 и проверяем его значение. Если wrong_cmds == WRONG_CMDS_LIMIT, то выходим из программы с помощью return 1.
  9. Если cmd == 0, то выходим из программы с помощью return 0.
  10. Если cmd == 1, то ничего не делаем.
  11. Если cmd == 2, то описываем то, что происходит при выборе пункта 2.
  12. Если cmd == 3, то описываем то, что происходит при выборе пункта 3.
  13. Если cmd == 4, то описываем то, что происходит при выборе пункта 4.
  14. Выводим символ новой строки \n.
  15. Если wrong_cmds достигнет значения WRONG_CMDS_LIMIT, то выходим из программы с помощью return 1.
  16. По завершению работы программы возвращаем 0.

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


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

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

12   голосов , оценка 4.167 из 5

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

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

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