Удалить из числа заданные цифры - C (СИ)

Узнай цену своей работы

Формулировка задачи:

По условию необходимо удалить из числа n все 2 и 5 у меня вот что написано
#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;
}
Ввожу :123 Но на выводе получается :-1294965251

Решение задачи: «Удалить из числа заданные цифры»

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;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Объявляем переменные: z, x, i, n, y
  3. Задаём начальное значение x = 0 и i = 0
  4. Выводим приглашение для ввода числа
  5. Считываем число в переменную n с помощью функции scanf
  6. Запускаем цикл while для обработки всех цифр числа
  7. В каждой итерации цикла проверяем последнюю цифру числа (z) на соответствие условию (не 2 и не 5)
  8. Если условие выполняется, то выполняем следующие действия:
    • Вычисляем значение y как степень 10 в степени i (используем функцию pow)
    • Добавляем произведение z и y к x (x = x + z*y)
    • Увеличиваем счётчик разряда i на 1
  9. Делим число n на 10 для перехода к следующей цифре
  10. После окончания цикла выводим значение x
  11. Используем функцию system(pause) для приостановки работы программы до нажатия клавиши
  12. Возвращаем 0 для завершения программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы