Простая задача но не получается - 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
Листинг программы
#include <stdio.h>
 
#ifdef _MSC_VER
#define INLINE __forceinline
#else
#define INLINE inline
#endif
 
#define WRONG_CMDS_LIMIT 5
 
static INLINE void show_menu()
{
    printf("The menu:\n");
    printf("0. Exit.\n");
    printf("1. Print menu again.\n");
    printf("2. Prime count matrix.\n");
    printf("3. Germain prime numbers in range.\n");
    printf("4. Layers printing.\n");
    printf("Please enter your choice: \n");
}
 
int main()
{
    int cmd;
    int wrong_cmds = 0;
    while (1)
    {
        show_menu();
        if ( (cmd > 4)
             || (cmd < 0))
        {
            if (++wrong_cmds == WRONG_CMDS_LIMIT)
                return 1;
        }
        else if (cmd == 0)
        {
            return 0;
        }
        else if (cmd == 1)
        {
            ; // ничего не делаем
        }
        else if (cmd == 2)
        {
            // описываем то, что происходит при выборе пункта 2
        }
        else if (cmd == 3)
        {
            // описываем то, что происходит при выборе пункта 3
        }
        else if (cmd == 4)
        {
            // описываем то, что происходит при выборе пункта 4
        }
        printf("\n");
    }
    return 0;
}

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

  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