Разработать функцию формирования массива, элементами которого являются цифры числа n - C (СИ)

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

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

Дано натуральное число n. Разработать функцию формирования массива, элементами которого являются цифры числа n.

Решение задачи: «Разработать функцию формирования массива, элементами которого являются цифры числа n»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int * MakeArrByNumber(int number, int * len)
{
    *len = (int)log10( (double)number ) + 1;
    int * arr = (int*)malloc( *len * sizeof(int) );
 
    int i;
    for(i = *len - 1; i >= 0; -- i)
    {
        arr[i] = number%10;
        number /= 10;
    }
 
    return arr;
}
 
int main()
{
    int len = 0;
    int * arr = MakeArrByNumber(123456, &len);
 
    int i;
    for(i = 0; i < len; ++ i)
        printf("%4d", arr[i]);
 
    free(arr);
    return 0;
}

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

  1. Объявлены входные параметры функции:
    • number - число, цифры которого нужно сохранить в массиве
    • len - переменная, в которую будет записан размер массива
  2. Вычисляется размер массива как целая часть логарифма по основанию 10 от числа number (с округлением в большую сторону) плюс 1
  3. Выделяется память под массив arr с помощью функции malloc
  4. Задается цикл, который будет выполняться, пока number не станет равным 0
  5. В каждой итерации остаток от деления number на 10 сохраняется в соответствующем элементе массива arr
  6. Число number делится на 10
  7. После завершения цикла, возвращается указатель на массив arr
  8. В функции main создается пустой массив arr, вызывается функция MakeArrByNumber с передачей в нее числа 123456 и адреса переменной len
  9. Задается цикл, который будет выполняться, пока i меньше len
  10. В каждой итерации на печать выводится значение элемента массива arr с использованием формата вывода 4d (четыре символа в строке, выравнивание по левому краю)
  11. После завершения цикла, освобождается память, выделенная под массив arr
  12. Функция main возвращает 0, что означает успешное завершение работы программы

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


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

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

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