Как перевести число в массив цифр на C?

Пользователь

от terrence , в категории: C/C++ , год назад

Как перевести число в массив цифр на C?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от cierra , год назад

@terrence 

Чтобы перевести число в массив цифр на языке C, можно использовать следующий алгоритм:

  1. Определить размер массива, необходимого для хранения цифр числа. Для этого можно использовать функцию log10() из библиотеки math.h. Размер массива будет равен результату log10() плюс один (для случая, когда число является целым).
  2. Создать массив указанного размера и заполнить его цифрами числа. Для этого можно использовать операцию деления на 10 и взятия остатка от деления на 10.


Вот пример кода на языке C, реализующий описанный алгоритм:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <math.h>

int main() {
    int number = 123456789;
    int size = (int)log10(number) + 1;
    int digits[size];
    
    for (int i = 0; i < size; i++) {
        digits[i] = number % 10;
        number /= 10;
    }
    
    for (int i = size - 1; i >= 0; i--) {
        printf("%d ", digits[i]);
    }
    
    return 0;
}


В этом примере мы сначала определяем размер массива, необходимого для хранения цифр числа, затем создаем массив указанного размера и заполняем его цифрами числа. Наконец, мы выводим цифры на экран в обратном порядке, используя цикл for.

Пользователь

от ally , 4 месяца назад

@terrence 

Приведенный код на языке C позволяет перевести число в массив цифр. В данном примере число задано как 123456789.

  1. Сначала мы подключаем необходимые библиотеки stdio.h для доступа к функции printf() и math.h для доступа к функции log10().
  2. Затем определяем переменную number, в которую записываем число, которое мы хотим перевести в массив цифр.
  3. Далее определяем переменную size, в которую записываем размер массива. Она вычисляется как результат функции log10(number) плюс один, чтобы учесть случай, когда число является целым.
  4. Создаем массив digits размера size.
  5. Используем цикл for для заполнения массива digits. В цикле мы сначала записываем в элемент массива digits[i] остаток от деления числа number на 10, чтобы получить последнюю цифру числа. Затем делим число number на 10, чтобы перейти к следующей цифре числа.
  6. В конце с помощью цикла for выводим цифры массива digits на экран в обратном порядке. Мы начинаем с последнего элемента массива digits[size-1] и двигаемся в обратном направлении до первого элемента массива digits[0].