注:回文數即數字順著和反著是同一個數!
看了郝斌老師的C語言視頻,雖然還只看了80多個,但是還是有一些體會,編程應該養成良好的編程風格,至少到現 在為止寫的這些小程序都應該有下面這樣一個過程:
1,流程;(知道程序是按照怎樣的順序運行的)
2,功能;(理解程序的作用)
3,試數;(我個人簡單的理解為測試過程,把自己當作計算機去執行程序)
/*
2012年4月20日 10:36:23
判斷一個數是否是回文數
*/
#include <stdio.h>
int main(void)
{
int val; //存放待判斷的數據
int m;
int sum = 0;
printf("請輸入您需要判斷的數字:\n");
scanf("%d",&val);
m = val;
/*這一塊是核心代碼塊:
由sum 不斷的從輸入的數中獲取各位、十位、百位……為了得到反數,需要*10並加上下一位作為個位
sum每更新一次,m值去掉最後一位同時更新
*/
while (m)
{
sum = sum*10 + m%10;
m /= 10;
}
if (sum == val)
printf("Yes!\n");
else
printf("No!\n");
return 0;
}
試數過程(純粹的體力活)
/*
判斷是否是回文數的試數過程
這裡只測試核心塊
*/
1234
1 -> m = val = 1234; sum = 0 + 1234%10 = 4; m = 1234/10 =123;
2 -> m = 123; sum = 40 + 123%10 = 40+3 = 43; m = 123/10 = 12;
3 -> m = 12; sum = 430 + 12%10 = 432; m = 12/10 = 1;
4 -> m = 1; sum = 4320 + 1%10 = 4321; m = 1/10 = 0;
false
12321
1 -> m = val = 12321; sum = 0 + 12321%10 = 1; m = 12321/10 = 1232;
2 -> m = 1232; sum = 10 + 1232%10 = 12; m = 1232/10 = 123;
3 -> m = 123; sum = 120 + 123%10 = 123; m = 123/10 = 12;
4 -> m = 12; sum = 1230 + 12%10 = 1232; m = 12/10 = 1;
5 -> m = 1; sum = 12320 + 1%10 = 12321; m = 1/10 = 0;
false
查看本欄目