C/C++

Как разбить число на цифры си

Есть число x = 145 нужно розбить на цифры 1; 4; 5; Подскажите как сделать
// Visual Studio 2019
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define BUFFER 0xFF
void swap(char* a, char* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
int main() {
int number;
printf("number: ");
scanf_s("%i", &number);
if (number) {
char str[BUFFER] = { 0 };
int length;
int i = 0, j;
do {
str[i] = number % 10 + 48;
++i;
} while (number /= 10);
length = strlen(str);
j = length - 1;
for (i = 0; i < j; ++i, --j) swap(&str[i], &str[j]);
printf("digits: ");
for (i = 0; i < length; ++i) printf("%c ", str[i]);
puts("");
}
else puts("0");
system("pause > nul");
return 0;
}
Asadullo Hidirov
Asadullo Hidirov
88 300
Лучший ответ
#include "stdio.h"
int main(){
long k,s=0,n=0; scanf("%d",&k);
do{s=10*s+k%10; k/=10; n++;}while(k);
do{printf("%d\n",s%10); s/=10; n--;}while(n);}
#include <stdio.h>
int main() { unsigned long long N;
int digits[20], i, n = 0; printf("N = ");
scanf("%llu", &N); if (N) { while (N)
{ digits[n] = N % 10; N /= 10; n++; }
for (i = n - 1; i >= 0; i--) printf("%d ", digits[i]);
printf("\n"); } else printf("%llu\n", N); }
Марат Рязяпов
Марат Рязяпов
66 572
#include<stdio.h>
#include<string.h>
int main()
{
int n=0;
char digits[25]={0},*pd=digits;
printf("Enter number: ");
scanf("%d",&n);
while(n!=0)
{
sprintf(pd++,"%d",n%10);
n/=10;
}
printf("\nResult text: ");
for(int i = strlen(digits)-1; i >=0; i--)
printf(" %c;", digits[i]);
system("pause");
return 0;
}
Раис Валитов
Раис Валитов
37 945
Вам нужно находить частное и остаток от деления на 10
Эм, а где это может применяться?