/* Name:用while判斷輸入的數字是否迴文數 Copyright: By.不懂網絡 Author: Yangbin Date:2014年2月18日 04:29:07 Description:用while判斷用戶輸入的數字是否迴文數,是迴文數返回YES!不然NO! */ # include <stdio.h> int main(void) { int m,val,sum = 0; printf("請輸入一個迴文數,若是是迴文數返回YES,不然返回No:"); scanf("%d",&val); m = val; while(m) { sum = sum*10+m%10; m/= 10; } if(sum == val) printf("YES\n"); else printf("NO\n"); } /* ---------------------- 該代碼由C-Free 5.0 編寫並輸出調試結果 -----輸出結果----- 請輸入一個迴文數,若是是迴文數返回YES,不然返回No:1221 YES ------總結------ 在不會寫此代碼時,看別人怎麼寫,以後弄懂這個代碼的意思; 此代碼主要是對while進行一個流程的計算。計算方式將以文本 方式貼到http://www.cnblogs.com/yang-bin和http://www.yangbin.org */
//對while語句進行流程分析
//假設用戶輸入數字121,判斷是否迴文數,m非0是真,不然爲假,爲真輸出YES,假輸出No;
1--->sum = sum*10+m%10 (sum = 0*10+121%10)//sum=0+1,sum=1
m / = 10(m=m/10)//m=121/10,m=12
2--->sum = sum*10+m%10(sum=1*10+12%10)//sum=10+2,sum=12
m / 10 =10(m=m/10) //m=12/10,m=1
3--->sum = sum*10+m%10(sum=12*10+1%10)//sum=120+1,sum=121
m / 10 =10(m=m/10) //m=1/10,m=0
m = 0爲假,則輸出No
網絡