讀入乙個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
輸入格式:
每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10的100次方。
輸出格式:
在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後乙個拼音數字後沒有空 格。
輸入樣例:
1234567890987654321123456789
輸出樣例:
yi san wu
第一次提交的**(存在錯誤):
#include
#include
intsum(
long
int n)
//計算其各位數字之和
return sum;
}void
output
(int n)
for(
int i=count;i>
0;i--
)//根據拼音輸出每一位
switch
(a[i])}
intmain()
測試結果:
1、大數的表示:10的100次方,常用的資料型別無法表示這麼大的數。適合本題兩種方法:
2、輸出:用字串陣列代替 switch case語句,可以使**看起來更簡潔
字串陣列:string str[m] = ;
修改後的**(正確**):
第一次**的錯誤在備註中指出。主要有:
1、段錯誤:陣列越界的問題,一些語法細節的錯誤導致
2、強制型別轉換
#include
intsum(
char str)
//計算其各位數字之和
return sum;
}void
output
(int n)
for(
int i=count;i>
0;i--
)//根據拼音輸出每一位
if(i !=1)
printf
(" ");
}}intmain()
*/char str[
110]
;scanf
("%s"
,str)
;//讀入乙個正整數 n
//gets(str);
int sum;
sum=
sum(str)
;//段錯誤 sum=sum(str[110]); str[110]:元素0的值 &str[110]:元素110的位址 str:str陣列首位址
output
(sum)
;return0;
}
1002 寫出這個數(20 分)
think 嗯。好久沒寫。隨便找個 水題寫吧。我直接跑計算,然後根據map進行輸出。讀入乙個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10 100 輸出格式 在一行內輸出 n 的各位數字之和的...
1002 寫出這個數 (20 分
題目1002 讀入乙個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。輸出格式 在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後乙個拼音數字後沒有空格。輸入樣例 1234567890987...
1002 寫出這個數 20 分
讀入乙個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10 100 輸出格式 在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後乙個拼音數字後沒有空格。輸入樣例 123...