Определить, какие цифры числа встречаются несколько раз (с защитой от неверного ввода) - C (СИ)
Формулировка задачи:
Ввести натуральное число и определить, какие цифры встречаются несколько раз.
Пример:
Введите число >= 0: Введите число >= 0:
2323 1234
Повторяются: 2, 3 Нет повторов.
Решение задачи: «Определить, какие цифры числа встречаются несколько раз (с защитой от неверного ввода)»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> #include <stdlib.h> int main () { char str[81]; int ch,k=0,i,c[10]; printf ("\nPrint digits, ENTER is OK, ESC is exit\n"); do { fflush(stdin); ch=getch(); if (ch>='0' && ch<='9') { printf ("%c",ch); str[k++]=ch; } else if (ch==13) { if (k>0) { for (i=0; i<10; i++) c[i]=0; for (i=0; i<k; i++) c[str[i]-'0']++; printf ("\nRepeating: "); for (i=0; i<10; i++) if (c[i]>1) printf ("%d ",i); printf ("\nNo repeating: "); for (i=0; i<10; i++) if (c[i]==1) printf ("%d ",i); k=0; } else printf ("\nNo digits!"); printf ("\nTry it again, baby\n"); } } while (ch!=27); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
для работы с выводом на экран, для работы с клавиатурой и для работы с массивами. - Объявляем переменные:
- char str[81] - строка, в которую будут добавляться введенные цифры.
- int ch,k=0,i,c[10] - переменные для подсчета повторяющихся цифр.
- Выводим сообщение с просьбой ввести цифры и нажимать ENTER, а при нажатии ESC завершать программу.
- Запускаем бесконечный цикл do-while, который будет выполняться до тех пор, пока не будет нажата клавиша ESC (27).
- В каждой итерации цикла с помощью функции fflush(stdin) очищаем буфер ввода от предыдущих значений и считываем очередную цифру с помощью функции getch().
- Если считанная цифра больше или равна '0' и меньше '9', то она добавляется в строку str[k++].
- Если считанная цифра равна 13 (нажатие ENTER), то проверяем, были ли введены цифры. Если да, то подсчитываем количество повторений каждой цифры и выводим список повторяющихся цифр.
- Если считанная цифра не является цифрой от '0' до '9', то выводим сообщение об ошибке и просим ввести цифры заново.
- После завершения цикла do-while возвращаем 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д