Простая задача но не получается - 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;
}
Объяснение кода листинга программы
- Включаем заголовочный файл stdio.h для использования функций ввода-вывода.
- Определяем макрос INLINE для обеспечения встраивания функций.
- Устанавливаем значение WRONG_CMDS_LIMIT равным 5.
- Создаем функцию show_menu, которая выводит меню.
- В функции main создаем переменные cmd и wrong_cmds типа int.
- Запускаем бесконечный цикл while (1), который будет выполняться до тех пор, пока пользователь не введет команду со значением 0.
- Внутри цикла вызываем функцию show_menu для вывода меню.
- Проверяем значение команды cmd: если оно больше 4 или меньше 0, то увеличиваем счетчик wrong_cmds на 1 и проверяем его значение. Если wrong_cmds == WRONG_CMDS_LIMIT, то выходим из программы с помощью return 1.
- Если cmd == 0, то выходим из программы с помощью return 0.
- Если cmd == 1, то ничего не делаем.
- Если cmd == 2, то описываем то, что происходит при выборе пункта 2.
- Если cmd == 3, то описываем то, что происходит при выборе пункта 3.
- Если cmd == 4, то описываем то, что происходит при выборе пункта 4.
- Выводим символ новой строки
\n. - Если wrong_cmds достигнет значения WRONG_CMDS_LIMIT, то выходим из программы с помощью return 1.
- По завершению работы программы возвращаем 0.