pat刷題之旅1002

2021-08-25 08:17:03 字數 1400 閱讀 8271

一開始那道題,我的思路就是用乙個變數n來儲存所輸入的數,之後通過模10,除10運算來求得每一位上的數之和,最後將所求得的和進行模10,除10將每一位上的數放到陣列arr中,通過switch case語句對應到相應的漢字表示中。**如下。

#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;

}

但是!!!通過編譯執行發現,當輸入的數字比較小時,執行結果沒有問題。而當數字比較大時出現了問題。於是,考慮到溢位。用字元來表示輸入的數,之後通過ascii碼值進行轉換,修改後的**如下

#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 空格,但一行中最後乙個拼音數字後沒有空格。...