ACM新手之八大输入输出格式
【輸入】有多組輸入數(shù)據(jù),但沒有具體的告訴你有多少組,只是讓你對應(yīng)每組輸入,應(yīng)該怎樣輸出。
【輸出】有多組輸出,對應(yīng)著每組輸入,每組輸出占一行。
【代碼】對于上述常見的情況,我們可以用下面的代碼來解決。
沒有告訴我們有多少組,我們只需要等待即可:
【完整代碼?】
相對應(yīng)輸入,輸出只需要在while中輸出。
第二種:A+B for Input-Output Practice (II)?【輸入】先輸入一個整數(shù),告訴我們接下來有多少組數(shù)據(jù),然后在輸入每組數(shù)據(jù)的具體值。
【輸出】有多組輸出,對應(yīng)著每組輸入,每組輸出占一行。
【代碼】這也是一種常見的輸入形式,簡單的代碼,我們可以先用scanf函數(shù)輸入第一個整數(shù)來確定有多少行,然后在用for循環(huán)一組一組的輸入。
【完整代碼】
【輸入】有多組輸入數(shù)據(jù),沒有具體的告訴你有多少組,但是題目卻告訴你遇見什么結(jié)束。
【輸出】有多組輸出,沒對應(yīng)一組輸入都有相應(yīng)的輸出,結(jié)束標(biāo)記不用管!
【代碼】這種類型的題目和第一種差不多,但是有一點值得注意,就是要加上結(jié)束條件。對于這道題我們可以這樣
當(dāng)然你也可以將條件寫在while循環(huán)的內(nèi)部,條件滿足時break即可。
【完整代碼】
【輸入】輸入有多組,并且題目告訴你每組輸入遇見什么結(jié)束,與第三種不同之處在于,每組輸入都有相應(yīng)的細(xì)化。
【輸出】沒有什么變化,只需要對應(yīng)輸出即可。
【代碼】這類題目的代碼是在第三種代碼的基礎(chǔ)之上,對于每種輸入都進(jìn)行第二種的精確輸入。代碼二者結(jié)合即可!
【完整代碼】
【輸入】這次的輸入實現(xiàn)輸入一個整數(shù),告訴我們有多少行,在輸入每一行。對于每一行的輸入,有劃分為第一個數(shù)和其他的數(shù),第一個數(shù)代表那一組數(shù)據(jù)一共有多少輸入。
【輸出】沒有變化,只需按照提議即可!
【代碼】代碼沒有什么,只是在第二種代碼的框架上,在進(jìn)行第二種輸入的細(xì)化,對于每組輸入都運(yùn)行第二種的代碼框架!
【完整代碼】
【輸入】有多種輸入數(shù)據(jù),對于每組輸入數(shù)據(jù)的第一個數(shù)代表該組數(shù)據(jù)接下來要輸入數(shù)據(jù)量。 【輸出】同上!
【代碼】這種類型的代碼,就是再套上第一種代碼的框架上,進(jìn)行第三種代碼的細(xì)化,沒有什么特殊性。
【完整代碼】
【輸入】同第一種一樣
【輸出】這道題的輸出只是簡單的在每組輸出后邊多加一個換行而已!
【代碼】在每組輸出的后邊多加一個換行符’\n’
【完整代碼】
【輸入】類似于第三種
【輸出】這種類型的輸出注意的就是換行,這類題目說在輸出樣例中,每組樣例之間有什么什么,所以我們在對應(yīng)輸出的同時要判斷一下是否是最后一組輸出,如果不是,就 將題目所說的東西輸出(一般是換行或空格),如果是,就直接結(jié)束。
【代碼】沒有什么說的,你在判斷是否結(jié)束不方便的時候可以判斷是否開始,類似于判斷結(jié)束的代碼。如用for輸入,一般判斷結(jié)束,如用while輸入一般判斷初始。
【完整代碼】
【綜上所述】
根據(jù)上邊介紹的八種輸入輸出,我們可以歸納出如下內(nèi)容:
對于輸入,如果沒有告訴你有多少組,我們常用while。如果告訴你有多少組,我們用for。
對于輸出,輸入用while,我們常常判斷是否為第一個輸出樣例,來指定特殊的輸出格式。輸入用for,我們常常判斷是否為最后的輸出樣例,來指定特殊的輸出格式。
當(dāng)然輸入輸出的格式遠(yuǎn)遠(yuǎn)不止上邊的八種,但它們卻是最常見的,特別是前三種是一定要掌握的。
?
總結(jié)
以上是生活随笔為你收集整理的ACM新手之八大输入输出格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ACM模板--邻接矩阵 有向图 搜索算法
- 下一篇: ACM模板--邻接表 无向图 Prim