Удалить из числа заданные цифры - C (СИ)
Формулировка задачи:
По условию необходимо удалить из числа n все 2 и 5 у меня вот что написано
Ввожу :123
Но на выводе получается :-1294965251
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> main () { int z=0; int x; int i=10; int n ; int y ; printf("\n chislo ="); scanf("%i",&n); while ( n>1 ) { z=n%10; i=i-1; if(z!=2||z!=5) { y=pow(10,i); x=x+(z*y); } n=n/10; } printf("%i\n",x); getch(); //system("pause"); //return 0; }
Решение задачи: «Удалить из числа заданные цифры»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> int main () { int z = 0; int x = 0; // x - задано int i = 0; // стартуем с нуля (10^0 = 1, 10^1 = 10, ...) int n; int y; printf("\n chislo ="); scanf("%i",&n); while (n >= 1) // 1 тоже число { z = n % 10; if (z!=2 && z!=5) // цифра одновременно должна быть не 2 и не 5, поэтому && (и), а не || (или) { y = (int)pow(10.0f, i); x = x + z*y; i = i + 1; // увеличиваем счётчик разряда } n = n / 10; } printf("%i\n",x); system("pause"); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем переменные: z, x, i, n, y
- Задаём начальное значение x = 0 и i = 0
- Выводим приглашение для ввода числа
- Считываем число в переменную n с помощью функции scanf
- Запускаем цикл while для обработки всех цифр числа
- В каждой итерации цикла проверяем последнюю цифру числа (z) на соответствие условию (не 2 и не 5)
- Если условие выполняется, то выполняем следующие действия:
- Вычисляем значение y как степень 10 в степени i (используем функцию pow)
- Добавляем произведение z и y к x (x = x + z*y)
- Увеличиваем счётчик разряда i на 1
- Делим число n на 10 для перехода к следующей цифре
- После окончания цикла выводим значение x
- Используем функцию system(
pause
) для приостановки работы программы до нажатия клавиши - Возвращаем 0 для завершения программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д