杭電oj刷題2021以及輸入問題

2021-09-25 14:08:36 字數 1290 閱讀 2251

problem description

作為杭電的老師,最盼望的日子就是每月的8號了,因為這一天是發工資的日子,養家餬口就靠它了,呵呵

但是對於學校財務處的工作人員來說,這一天則是很忙碌的一天,財務處的小胡老師最近就在考慮乙個問題:如果每個老師的工資額都知道,最少需要準備多少張人民幣,才能在給每位老師發工資的時候都不用老師找零呢?

這裡假設老師的工資都是正整數,單位元,人民幣一共有100元、50元、10元、5元、2元和1元六種。

input

輸入資料報含多個測試例項,每個測試例項的第一行是乙個整數n(n<100),表示老師的人數,然後是n個老師的工資。

n=0表示輸入的結束,不做處理。

output

對於每個測試例項輸出乙個整數x,表示至少需要準備的人民幣張數。每個輸出佔一行。

sample input

31 2 3

0sample output

4#includeint main()

; while(~scanf("%d",&n),n) //逗號表示式

{for(i=j=k=0;i輸入輸出問題:

1、while(scanf("%d",&n),n)

功能:當n為0時中止迴圈

這裡要先說一下逗號表示式:逗號表示式的值是逗號後面的那個數。例如x=(5,6),則x=6。

while(scanf("%d",&n),n)括號裡的語句其實就是個逗號表示式,它的返回值是n的值,所以這個語句就相當於while(n),n=0時跳出迴圈,寫成這樣是為了輸入。

如果是while(scanf("%d%d",&n,&m,),n,m),那麼就相當於while(m)。

2、while(scanf("%d",&n)!=eof)和while(~scanf("%d",&n))

功能:當讀到檔案結尾時中止迴圈

scanf語句的返回值為成功賦值的個數,例如scanf("%d %d",&a,&b),如果a、b均賦值成功返回值為2,只是a賦值成功返回1,a、b都不成功返回0,出錯的時候返回eof。

~是按位取反,scanf語句如果沒有輸入值就是返回-1,按位取反結果為0。

注意:這兩種方法在輸入字母的時候會變成死迴圈,而scanf("%d %d",&a,&b)==2不會。windows下可通過按「ctrl +z」、linux下可通過「ctrl + d」來來達到「輸入」檔案結束符的效果,結束迴圈。

3、while(scanf("%d",&n)==1)

功能:賦值失敗,跳出迴圈

如果是scanf("%d%d",&n,&m)那麼就是while(scanf("%d %d",&a,&b)==2)

杭電oj刷題2027

problem description 統計每個母音字母在字串 現的次數。input 輸入資料首先包括乙個整數n,表示測試例項的個數,然後是n行長度不超過100的字串。output 對於每個測試例項輸出5行,格式如下 a num1 e num2 i num3 o num4 u num5 多個測試例項...

杭電Oj刷題(2005)

題目描述 給定乙個日期,輸出這個日期是該年的第幾天。input 輸入資料有多組,每組佔一行,資料格式為yyyy mm dd組成,具體參見sample input 另外,可以向你確保所有的輸入資料是合法的。output 對於每組輸入資料,輸出一行,表示該日期是該年的第幾天。sample input 1...

杭電Oj刷題(2007)

題目描述 給定一段連續的整數,求出他們中所有偶數的平方和以及所有奇數的立方和。input 輸入資料報含多組測試例項,每組測試例項包含一行,由兩個整數m和n組成。output 對於每組輸入資料,輸出一行,應包括兩個整數x和y,分別表示該段連續的整數中所有偶數的平方和以及所有奇數的立方和。你可以認為32...