#include<stdio.h>
intmain(void)
{
intb,t,x,c;
printf("Inputaninteger:");
scanf("%d",&x);
c=0;
if(x>=0)//當x為正數時,假設是12345
{
t=x%10;//取出x的個位的數5,賦給t,此時t為5。對10取余取出個位的數,下面還有很多次用到
while(x!=0)
{
x=x/10;//整數除法,作用是令x向右“退”一位。此時x的值為1234。例如911/10的結果是91,把個位“去掉了”。此技術下面也有多次用到
b=x%10;//把x的個位賦給b,b為4
t=t*10+b;//t本來存放的是5,乘以10再加上b,就變成了54。然后while一直如此循環當x被“取完”時,while退出
}//while退出是t的值為543210
//printf("%d\n",t);//你可以把這行的注釋去掉,看看t是多少
t=t/10;//令t向右“退”一位
while(t!=0)
{
printf("%d",t%10);//不斷地取出t的個位,并輸出
t=t/10;//不斷地令t向右“退”一位
}//這個循環可令t從個位到最高位的數字逐個輸出
}
if(x<0)//當x為負數
{
x=-x;//先把x轉換為它的相反數,然后下面的過程和正數的幾乎一模一樣
t=x%10;
while(x!=0)
{
x=x/10;
b=x%10;
t=t*10+b;
}
t=t/10;
while(t!=0)
{
c++;//c記錄當前的位數
if(c<=1)
printf("-");//如果c小于等于1,則說明剛剛開始,要先輸出一個負號
elseprintf("");//如果c大于1,則要加空格,以分隔各數字
printf("%d",t%10);
t=t/10;
}
}
return0;
}