Getting digits from a number beginning from the least significant in C is pretty easy:
#include
int main()
{
int num = 1024;
while(
I know the question has been answered, but I shall post this answer in case anyone finds it useful.
#include
//get_int_first gets each digit and multiplies it by it's placeholder value.
// the number is reconstructed and returned to main
int get_int_first(int num){
int power = 1,len = 0,first = 0,i = 0;
int number = 0;
while (num>power){
power=power*10; //calculating number of zeroes in number. for 789, power = 10 -> 100 -> 1000
}
power = power/10; // to multiply with power directly and get highest placeholder, we divide by 10. now power = 100
while (power>1){
first = (num/power); //get digits from the leftmost(100th placeholder/nth placeholder) f = 7 f = 8
number = number + first*power; //first*power = gives number as nb = 0 +7*100 = 700 nb = 700 + 80
num = num - (power*(first)); //change number to get next significant digit from left n = 789 - (100*7) = 89 n = 89-10*8=9
power = power/10; //change power to divide number by appropriate power. p = 100/10 = 10 p = 1
}
number = number + num; //number is missing the unit's digit and it is stored in num. thus, it is added to number
return number;
}
int main() {
printf("digits are %d\n",get_int_first(789));
return 0;
}