Для каждого числа исходной последовательности удалить из записи числа все цифры, большие 5 - C (СИ)

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

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

Написать программу. Дана последовательность из n натуральных чисел. Для каждого числа исходной последовательности удалить из записи числа все цифры, большие 5, и подсчитать количество цифр в записи числа. Сформировать новую последовательность, поместив в неё для каждого исходного числа два значения - преобразованное число и количество цифр в записи числа. Упорядочить новую последовательность попарно по возрастанию чисел. Вывести исходную и полученную последовательности на экран. В программе использовать функцию, которая удаляет из записи числа все цифры, большие 5, и возвращает количество цифр в записи числа

Решение задачи: «Для каждого числа исходной последовательности удалить из записи числа все цифры, большие 5»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
const int N = 10;
int power(int x, int n)
{
    int i, z = 1;
    for(i = 0; i < n; ++i)
        z *= x;
    return z;
}
int main()
{
    int arr[N];
    int i, b, x, k, y, m = 0, n = 0;
    for(i = 0; i < N; ++i){
        arr[i] = rand() % INT_MAX;
        printf("%d\t", arr[i]);
        b = arr[i];
        while(b > 0){
            x = b % 10;
            b = b / 10;
            ++n;
        }
        b = arr[i];
        k = n - 1;
        while(b > 0){
            y = b / power(10, k);
            b = b - y * power(10, k);
            --k;
            if(y <= 5){
                printf("%d", y);
                ++m;
            }
        }
        printf("\t%d\n", m);
        n = 0;
        m = 0;
    }
    return 0;
}

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

В этом коде выполняются следующие действия:

  1. Включаются необходимые заголовочные файлы
  2. Задаются значения констант
  3. Определяется функция для возведения числа в степень
  4. В функции main() создается массив и инициализируется случайными числами
  5. Выполняется цикл по элементам массива
  6. Для каждого элемента выполняется следующее действие:
    • Число делится на цифры, начиная с самой большой
    • Цифры, большие 5, удаляются из числа
    • Выводится количество цифр, меньших или равных 5
  7. После обработки каждого элемента массива, счетчики цифр и итераций сбрасываются в ноль

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


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

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

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