一開始那道題,我的思路就是用乙個變數n來儲存所輸入的數,之後通過模10,除10運算來求得每一位上的數之和,最後將所求得的和進行模10,除10將每一位上的數放到陣列arr中,通過switch case語句對應到相應的漢字表示中。**如下。
但是!!!通過編譯執行發現,當輸入的數字比較小時,執行結果沒有問題。而當數字比較大時出現了問題。於是,考慮到溢位。用字元來表示輸入的數,之後通過ascii碼值進行轉換,修改後的**如下#include#includeint main()
; int s = 0,i=0;
scanf("%d", &n);
while ((n / 10) != 0)
s+=n;
printf("%d\n",s);
while ((s / 10) !=0)
arr[i]=s;
for (; i>0; i--)
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 0: }}
switch (arr[0])
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 0:
} printf("\n");
system("pause");
return 0;
}
通過這個題,學習到溢位問題的處理#include#include#includeint main()
,i=0;
while((c=getchar())!='\n')
while ((s / 10) !=0)
arr[i]=s;
for (; i>0; i--)
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 0: }}
switch (arr[0])
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 0:
} printf("\n");
system("pause");
return 0;
}
pat 刷題記錄 pat 乙級 刷題 1002
讀入乙個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10 100 在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後乙個拼音數字後沒有空格。123456789098765432...
PAT乙級訓練題 1002
讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。輸入樣例 123456789098765...
PAT乙級真題1002
1002 寫出這個數 20 20 分 讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10 100 輸出格式 在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。...