單點測試:一組通過就有分數,最後看分數之和。
多點測試:全部資料通過才算通過。
1.常用的輸入方式:(1
)while..
.eof型
如果題目沒有給定輸入的結束條件,那麼就預設讀取到檔案末尾。
對黑盒測試來說,所有輸入資料都是放在乙個檔案裡的,
系統會讓程式去讀取這個檔案裡的輸入資料,然後執行
程式並輸出結果。那麼如果題目沒有指定何時結束輸入,一般都是指輸入完所有資料(即到
達檔案末尾)為止。
scanf函式的返回值為其成功讀入的引數的個數。
什麼時候會讀入失敗?讀入失敗時scanf函式是否返回0
?正常的控制台(螢幕黑框框)中的輸入1般是不會失敗的,只有在讀
取檔案時到達檔案末尾導致的無法讀取現象,才會產生讀入失敗。這個時候,scanf函式會返
回-1而不是0,且c語言中使用eof
(即end offile) 來代表1。
while
(scanf
("%d"
,&n)
!=eof
)含義是:只要scanf的返回值不為eof
(即檔案中的資料沒有讀完),就反覆
讀入n,執行while函式體的內容;當讀入失敗(到達檔案末尾)時,結束while迴圈。
可以按組合鍵,這時就會顯示一乙個^z,按鍵就可以結束while了。
還需要指出,如果讀入字串,則有sanf"%s"
, str)與gets
(str)兩種方式可用,其對應的
輸入寫法如下所示:
.while
(scanf (
"&s"
, str)
!=eof
)while
(gets
(str)
!=null
)
(2)
while..
.break型
題目要求當輸入的資料滿足某個條件時停止輸入。
#include
int main (
)return0;
}簡潔寫法:
#include
int main (
)return0;
}
(3)
while
(t--
)型在這種型別中,題目會給出測試資料的組數,然後才給出相應數量組數的輸入資料。
int t;
scanf (
"%d",&t)
;while
(t--
)
2.常見的輸出方式(1
)正常輸出
這種輸出型別要求需要每兩組輸出資料中間沒有額外的空行,即輸出資料是連續的多行。(2
)每組資料輸出之後都額外加乙個空行
這個要求非常容易實現,只需要在每組輸出結束之後額外輸出乙個換行符\n即可。(3
)兩組輸出資料之間有乙個空行,最後一組資料後面沒有空行
這一般是在第三種輸入型別whil
(t)的情況下,只需要通過判斷t是否已經減小到0來:
判斷是否應當輸出額外的換行。
int t, n, a;
scanf (
"%d"
,&t)
;while
(t--
) printf (
"&d\n"
, sum);if
(t>0)
printf
("\n");
(4)類似的要求是:輸出一行n個整數,每兩個整數之間用空格隔開,最後乙個
整數後面沒有不允許加上空格。
for(
int i =
0; i)最後需要指出,在多點測試中,每一次迴圈都要重置一下變數和陣列,
否則在下一組資料來臨的時候變數和陣列的狀態就不是初始狀態了。
例如上面codeup 1007的**中,sum =
0的語句就必須放在while之內,
如果放在while之外,則第二組資料來臨時sum就不是0了。
而重置陣列一般使用memset函式或fill函式。
輸入輸出系統1 特性 輸出輸出方式
io系統相對於處理機是非同步工作的 外設通常只要開始和結束時需要處理機干預 解決方法 自治控制 即將處理機和外設功能剝離 對於不同外設需要完成的功能不同,處理機需要對不同速度,不同傳輸方式 乙個字元,多個字元 的外設進行多種相應。如果錯過服務時間,則可能丟失資料 因此需要多種方式響應。解決方法 將裝...
c語言 基本輸入輸出方式
題目是很簡單的 a b 的和 1.一組輸入一組輸出 include intmain 2.多組輸入多組輸出 include intmain return0 3.指定資料量 有時會在資料的第一行要求提供資料量大小,要求輸入n,則表示有n組資料。include intmain return0 4.以特定元...
ACM中常用的輸入輸出方式
不論是在acm icpc這樣型別的比賽中,還是在做專案中,對於輸入輸出的格式尤為重要,不可以想當然的按自己那一套走,我們需要根據題目要求進行操作,對於第一次接觸這方面比賽的小白,最為常見的現象便是類似於下面這行 1 printf 請輸入一組資料 2 cout 倘若題目沒有要求你,千萬不要有多餘的輸出...