1002 寫出這個數 20 分

2021-10-06 20:30:55 字數 1573 閱讀 1352

讀入乙個正整數 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...