Запрет ввода букв и некоторых цифр - C (СИ)
Формулировка задачи:
Имеется программа, мне нужно запретить ввод неверных цифр и букв исключая числа 1 и 2. Циклом while думал запретить ввод ненужных цифр и букв, а вот букв не получается, программа зависает...
Просьба, помочь с кодом и исправить имеющиеся ошибки, буду очень признателен. Спасибо
#include <iostream> #include <stdlib.h> main() { int n; int answ; begin: answ=0; while ((n!=1) && (n!=2)) { system("cls"); printf ("\n Please choose massive length: \n"); printf (" 1) 5 \n"); printf (" 2) 6 \n"); printf ("\n Selected option: "); scanf ( "%d" ,&n); } switch (n) { case 1: n=5; printf ("\n Choosen massive length is %d",n); printf ("\n"); break; case 2: n=6; printf ("\n Choosen massive length is %d",n); printf ("\n"); break; } int Mas[n]; int i; int j; for(i=0; i<n; i++) { printf (" Mas[%d] = ",i); scanf ( "%d" ,&Mas[i]); for(j = 0; j < i; j++) { if(Mas[i] == Mas[j]) { printf ("\n Element with value %d exist, please try again \n", Mas[i]); --i; } } } printf ("\n --------Generated Massive--------\n"); printf ("\n"); for(i=0; i<n; i++) { printf (" Mas[%d] = %d \n",i,Mas[i]); } while ((answ!=1) && (answ!=2)){ printf ("\n Press ''1'' to regenerate massive or ''2'' to ex1t: "); scanf ( "%d" ,&answ); } switch (answ) { case 1: goto begin; break; case 2: exit(1); break; } }
Решение задачи: «Запрет ввода букв и некоторых цифр»
textual
Листинг программы
#include <conio.h> #include <stdio.h> #include <string.h> int main() { char n; while(1) { scanf("%c",&n); if(n == '1' || n == '2') { break;} } switch(n) { case '1': printf("One"); break; case '2': printf("Two"); break; } _getch(); }
Объяснение кода листинга программы
В этом коде:
- Объявлена переменная
n
типаchar
. - Задаётся условие цикла
while(1)
, которое выполняется бесконечно. - В каждой итерации цикла выполняется операция
scanf()
, которая считывает с консоли один символ и сохраняет его в переменнойn
. - Далее выполняется проверка: если считанный символ равен '1' или '2', то цикл прерывается с помощью оператора
break
. - После окончания цикла выполняется оператор
switch
, который выбирает один из двух вариантов в зависимости от значения переменнойn
. - В каждом варианте
switch
выводится на консоль соответствующая строка с помощью функцииprintf()
. - В конце программы выполняется функция
_getch()
, которая приостанавливает выполнение программы и ожидает нажатия клавиши на консоли.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д