下面的程序會獲取一個整數值並返回其數字相反的數字。適用於6540063或675或9600012等數字,但對於以0結尾的數字不輸出正確的630,50或10。630返回36.我不明白爲什麼。你能建議我應該添加什麼?這看起來像意大利麪代碼不是嗎?當630反轉時打印36。爲什麼不顯示0?
#include <stdio.h>
#include <math.h>
void getDigit(int number);
void getReverse(int number);
int main(void) {
int namba=630; //Enter here number to be reversed
getReverse(namba);
return 0;
}
void getDigit(int number) {
int div=1,reverse=0,count=0,i=0;
//to find max dividend
while (number>10*div){
div*=10;
++count;
}
while(div!=0&&i<=count){
printf("%d ",number/div);
number=number%div;
div/=10;
}
}
void getReverse(int number){
int div=1,reverse=0,count=0,i=0;
//to find max dividend
while (number>10*div){
div*=10;
++count;
}
while(div!=0&&i<=count){
reverse+=(number/div)*pow(10,i++); //to find reverse digits
number=number%div;
div/=10;
}
printf("Reverse is: %d\n",reverse);
getDigit(reverse);
}
http://stackoverflow.com/questions/5007487/c-printf-with-leading-zeros –