Как я могу разделить такие числа, как 123 на 1, 2 и 3 в C? - PullRequest
0 голосов
/ 08 июня 2019

Я хочу получить десятичные цифры отдельно, когда получу номер. Например, если я получу 123 или 321, я хочу отсортировать массив или вывести цифры «1 2 3» или «3 2 1» в C.

Не могли бы вы дать мне какой-нибудь совет? Использовать грамматику C?

int nums;
scanf("%d", &nums) // imagin this nums is 123

// and how can I get the number 1,2,3? 

В массиве. Я буду сортировать число как

for(int i = 0; i<3; i++)
 array[i] = nums;

и я ожидаю, что номер массива, вероятно, {1,2,3};

1 Ответ

2 голосов
/ 08 июня 2019

Вы можете использовать рекурсивную функцию печати по модулю при каждом вызове:

#include <stdio.h>

static void print(int value)
{
    if (value != 0) {
        print(value / 10);
        printf("%d, ", value % 10);
    }
}

int main(void) 
{
    int value;

    scanf("%d", &value);
    print(value);
    return 0; 
}

ввод: 123

вывод: 1, 2, 3,

...