東華OJ高階題68 最長的單詞

2021-10-03 21:39:38 字數 1604 閱讀 8550

68 最長的單詞

問題描述 :

明明剛開始學習英語的時候,對英語有濃厚的興趣,但是隨著時間的推移,英語單詞量的增加,明明越來越覺得背單詞是一件相當痛苦的事情。於是他想出各種各樣的方法來增加背單詞的樂趣。

這次他想出的方法是把所有要背的英語單詞排成一行,找出其中最長的乙個單詞來先背,然後劃去這個單詞,在剩下的單詞中再找出乙個最長的單詞來背,以此類推,直到把所有單詞都背完。如果有多個長度相同的單詞,則先背一行中靠前的那個單詞。這樣做的好處是:背到越後面,單詞越短,越容易背,越能增加背單詞的信心。

例如有這麼一行單詞: one two three four five 明明會首先挑出three來背,因為它是最長的乙個單詞,由5個字母組成;然後明明會選擇four這個單詞,雖然five這個單詞的長度和four這個單詞的長度一樣,但是four在five的前面,所以明明會先背four這個單詞,然後再背five,等明明把five這個單詞背完以後,接著背one這個單詞,最後背的是two這個單詞。

但是在這樣背單詞之中,明明又發現了另乙個問題,當要背非常多的單詞時,尋找最長的單詞會花很多時間,他想讓你幫助他寫乙個程式,找出一行單詞中最長的那個,節約明明背單詞所花的時間,與此同時,明明希望你能告訴他這個英文單詞有多少個字母組成,那他可以做到心裡有數。

明明的問題可以歸結為:在一行英文單詞中,找出其中最長的單詞(若有多個最長,找出第乙個出現的),並輸出這個單詞的長度。

輸入說明 :

你寫的程式要求從標準輸入裝置中讀入測試資料作為你所寫程式的輸入資料。標準輸入裝置中有多組測試資料,每組測試資料僅佔一行,每行包括許多個英語單詞和空格,單詞和單詞之間可能有多個空格,每行的長度不會超過1000個字元。每組測試資料與其後一組測試資料之間沒有任何空行,第一組測試資料前面以及最後一組測試資料後面也都沒有任何空行。

輸出說明 :

對於每一組測試資料,你寫的程式要求計算出一組相應的運算結果,並將每組運算結果作為你所寫程式的輸出資料依次寫入到標準輸出裝置中。每組運算結果為乙個整數和乙個英語單詞,整數表示該英文單詞的長度,整數和單詞之間用乙個空格隔開。輸出時,每組運算結果單獨佔一行,其行首和行尾都沒有任何空格或其他任何字元,每組運算結果與其後一組運算結果之間沒有任何空行或其他任何字元,第一組運算結果前面以及最後一組運算結果後面也都沒有任何空行或其他任何字元。 注:通常,顯示屏為標準輸出裝置。

輸入範例 :

a bc def ghijk lmn

abc def ghi

輸出範例 :

5 ghijk

3 abc

#include

#include

intmain()

if(temp>max)

i++;}

printf

("%d "

,max)

;for

(j=index_max;j)printf

("%c"

,a[j]);

printf

("\n");

memset

(a,0

,sizeof

(a))

;//置0 會有殘餘字元

}return0;

}

學會了memset()函式,因為字元陣列會有上一次殘餘的字元留下來,必須進行置0

東華oj 高階題第11題

11 abc數字 問題描述 明明的爸爸是一位著名的數學家同時也是一位著名的數學啟蒙老師。他經常出一些簡單而有趣的數學題目來給剛剛接觸數學的小朋友做,培養他們對數學的興趣。一天,明明的爸爸想到了這樣乙個題目。如果有a b c三個1位的正整數,那麼按以下的方法構成2個三位數 第一種方法是a為百位,b為十...

東華oj 高階題第21題

21 回文質數 問題描述 因為151既是乙個質數又是乙個回文數 從左到右和從右到左是看一樣的 所以 151 號是回文質數。寫乙個程式來找出範圍 a,b 5 a b 100,000 間的所有回文質數 輸入說明 僅 1 行 二個整數 a 和 b 5 a b 100,000 輸出說明 輸出乙個回文質數的列...

東華oj 高階題第31題

31 最高頻率 問題描述 明明的爸爸是一位著名的數學家。他在明明很小的時候就發現明明有過人的數學天賦,因此有意培養他對數學的興趣。一次,明明的爸爸和明明玩起了乙個數字遊戲,這個遊戲的名字叫 最高頻率 在遊戲中,明明的爸爸要求明明在一串數字中,找出出現次數最多的那個數字,如果有多個數字出現的次數一樣,...