1002 寫出這個數

2021-10-13 13:07:08 字數 2316 閱讀 6506

題目描述:

讀入乙個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。

輸入格式:

每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10的100次方。

輸出格式:

在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後乙個拼音數字後沒有空格。

輸入樣例:

1234567890987654321123456789

輸出樣例:

yi san wu

在寫這個之前寫一些函式的總結

strcpy的使用

盡量白話說明白

1,strcpy包含在標頭檔案string.h中,只要用到strcpy函式在開頭就必須引用標頭檔案include

2,strcpy(a,b)的意思是把陣列b放到a陣列中(不是陣列也行,a多半是陣列,b可以是乙個字串也可以是陣列)

3,strcpy核心意思是覆蓋

4,定義字陣列的時候,長度必須比字串大,比如定義abcd,那麼就是a[5](可以比5大,不能小),定義a bcd,那麼必須是a[6],可以比6大不能小,這個點是我犯的低階錯誤

5,覆蓋的時候會包括結束符,輸出結束符以空格的形式,會覆蓋掉乙個字元,如果結束符的位置沒有字元正好是空格,也不會多輸出乙個空格,依舊是乙個,結束符的空格覆蓋掉原先的空格

舉個栗子

#include

#include

intmain()

return0;

}

輸出結果是

結束符的位置覆蓋掉了d,如果是空格就是空格覆蓋空格,並不會多乙個空格哈

strlen的使用

1,strlen包含在string.h中,使用前必先寫標頭檔案

2,strlen算字串長度

3,當要計算乙個陣列s的長度時,strlen[s]就可以

#include

#include

intmain()

printf

("%c\n"

,s[5])

;printf

("%c"

,s[4])

;return0;

}

執行結果

gets和scanf

1,都可用於輸入字串,但在功能上有區別。gets可以接收空格;而scanf遇到空格、回車和tab鍵都會認為輸入結束,所有它不能接收空格。

舉個栗子

char string[15];

gets(string); /遇到回車認為輸入結束/

scanf("%s",string); /遇到空格認為輸入結束/

所以在輸入的字串中包含空格時,應該使用gets輸入。

2,語法不同

scanf(「格式控制字串」,變數位址列表);

gets(字元陣列名或指標);

3,接受字串時

scanf("%s",字元陣列名或指標);

gets(字元陣列名或指標)

4,兩者在接受字串時:

(1)不同點:

scanf不能接受空格、製表符tab、回車等;

而gets能夠接受空格、製表符tab和回車等;

(2)相同點:

字串接受結束後自動加』\0』。

現在回到這道題1002

強調幾個基礎的點

1,字串或串 (string)是由數字、字母、下劃線組成的一串字元,所以這裡輸入的數可以用strlen來計算有幾位,我是憨憨,還以為不能用

2,-'0』是將字元型數字轉為整型

3,根據我上面寫的gets和scanf的區別及其使用,以下**輸入部分由gets(n)換成scanf(「%s」,n)也是一樣的

滿分**

#include

#include

intmain()

while

(sum)

for(j=c-

1;j>

0;j--)}

if(j==0)

}return0;

}

最後想說

遇到沒學過的函式,就去查大佬的文章,乙個勁讀,檢驗自己懂沒懂只有乙個辦法,就是運用到自己**裡!

1002 寫出這個數

本題是pat乙級真題 思路 題目本來是大數的問題,但是由於只求各位之和,就可以邊輸入邊處理。訓練目的 字串的運用 讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行內輸出n的各位數...

1002寫出這個數

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行...

1002 寫出這個數

讀入乙個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。輸入格式 每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。輸出格式 在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後乙個拼音數字後沒有空格。輸入樣例 123456789098765...