Я пытаюсь разбить число и получить каждую отдельную цифру. Я пытаюсь сделать это путем деления на степени десяти, пока не достигну 0. Каждый раз, когда я делю на десять, это добавляет к общему количеству цифр в целом числе. Как только у меня будет общее количество цифр, я разделю исходную цифру на 10 на количество цифр - 1, а затем уменьшу количество цифр и повторю процесс. Это работает до последней цифры, где я получаю 4 вместо 6. Я пытался использовать другой номер, и последние, а иногда и предпоследние цифры были неправильными. Есть ли какая-либо причина, почему это происходит, и любая помощь будет оценена по достоинству.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int indx;
int originalDigit = 1234;
int numDigits;
int digit;
int individualDigit;
numDigits = 0;
digit = originalDigit;
while(digit > 0)
{
digit = digit / 10;
numDigits++;
}
printf("%d\n", numDigits);
digit = originalDigit;
while( digit > 0)
{
individualDigit = digit / (int)pow(10, numDigits - 1);
printf("%d ", individualDigit);
digit = digit % (int)pow(10, numDigits - 1);
numDigits--;
}
return 0;
}
sprintf
в буферchar
достаточного размера. Вы получаете (а) цифры в виде символов и (б) количество цифр черезstrlen()
. - person WhozCraig   schedule 02.08.20151234
был разбит на1
2
3
4
? - person ameyCU   schedule 02.08.2015