Определить, сколько цифр содержит заданное целое число - C (СИ)
Формулировка задачи:
Помогите пожалуйста.
Использовать стандартные функции и арифметические операторы; изучить операторы отношения и присваивания, логические
операции, условный оператор и оператор-переключатель; научиться использовать в программах операторы цикла. Написать программы на изученные темы.
Определить, сколько цифр содержит заданное целое число и имеются ли в нем
повторяющиеся цифры.
Решение задачи: «Определить, сколько цифр содержит заданное целое число»
textual
Листинг программы
int main(void) { int n0 = 0, n1 = 0, n2 = 0, n3 =0, n4 = 0, n5 = 0, n6 = 0, n7 = 0, n8 = 0,n9 = 0, x = 0;//x - введенное число printf("To determine how many digits it contains a given integer and whether it has repeating digits.\n\n"); printf("Enter x \n"); while (1) { printf("x = "); if (scanf("%lf", &x) == 1 ) break; scanf("%*[^\n]%*c"); printf("Entered is not the correct value. Enter again \n"); } //int x = 1234233; bool noRepeatDigit = true; int nDigit; for (nDigit = 0; x!= 0; nDigit++) { if (noRepeatDigit) { switch (x % 10) { case 0: if (++n0 > 1) noRepeatDigit = false; break; case 1: if (++n1 > 1) noRepeatDigit = false; break; case 2: if (++n1 > 1) noRepeatDigit = false; break; case 3: if (++n1 > 1) noRepeatDigit = false; break; case 4: if (++n1 > 1) noRepeatDigit = false; break; case 5: if (++n1 > 1) noRepeatDigit = false; break; case 6: if (++n1 > 1) noRepeatDigit = false; break; case 7: if (++n1 > 1) noRepeatDigit = false; break; case 8: if (++n1 > 1) noRepeatDigit = false; break; case 9: if (++n9 > 1) noRepeatDigit = false; break; } } x /= 10; } printf("the number : %d\n", x); printf("The number of digits: %d\n", nDigit); if (noRepeatDigit) puts("Repeated numbers - no "); else puts("Repeated numbers - yes"); return 0; }
Объяснение кода листинга программы
В этом коде определенная последовательность цифр в числе проверяется на повторяющиеся цифры. Если число содержит повторяющиеся цифры, код выведет сообщение Repeated numbers - yes
, в противном случае - Repeated numbers - no
.
- Создаются переменные для хранения количества цифр от 0 до 9: n0, n1, n2, n3, n4, n5, n6, n7, n8, n9.
- Создается переменная
x
для хранения введенного числа. - Пользователю предлагается ввести число, и цикл while будет выполняться до тех пор, пока не будет введено корректное число.
- Создается переменная
noRepeatDigit
для хранения флага, указывающего, содержит ли число повторяющиеся цифры. - Создается переменная
nDigit
для хранения количества цифр в числе. - Цикл for выполняется, пока число не станет равным 0. На каждой итерации из числа извлекается последняя цифра с помощью операции модуля (%).
- В зависимости от последней цифры, увеличивается соответствующая переменная
n0
,n1
,n2
,n3
,n4
,n5
,n6
,n7
,n8
,n9
. - Если флаг
noRepeatDigit
установлен в false, это означает, что число содержит повторяющиеся цифры, и выводится сообщениеRepeated numbers - yes
. - Если флаг
noRepeatDigit
установлен в true, это означает, что число не содержит повторяющихся цифр, и выводится сообщениеRepeated numbers - no
. - Выводится количество цифр в числе с помощью переменной
nDigit
. - Возвращается 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д