Разработать функцию формирования массива, элементами которого являются цифры числа 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; }
Объяснение кода листинга программы
- Объявлены входные параметры функции:
- number - число, цифры которого нужно сохранить в массиве
- len - переменная, в которую будет записан размер массива
- Вычисляется размер массива как целая часть логарифма по основанию 10 от числа number (с округлением в большую сторону) плюс 1
- Выделяется память под массив arr с помощью функции malloc
- Задается цикл, который будет выполняться, пока number не станет равным 0
- В каждой итерации остаток от деления number на 10 сохраняется в соответствующем элементе массива arr
- Число number делится на 10
- После завершения цикла, возвращается указатель на массив arr
- В функции main создается пустой массив arr, вызывается функция MakeArrByNumber с передачей в нее числа 123456 и адреса переменной len
- Задается цикл, который будет выполняться, пока i меньше len
- В каждой итерации на печать выводится значение элемента массива arr с использованием формата вывода
4d
(четыре символа в строке, выравнивание по левому краю) - После завершения цикла, освобождается память, выделенная под массив arr
- Функция main возвращает 0, что означает успешное завершение работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д