天天看點

C++第15周(春)項目1 - 工資資料的輸入

  (1)輸入若幹職工的工資(1000-10000的數字),将這些數字按降序排序後輸出。

輸入樣例:

3736.98 9169.35 5595.57 1006 6631.19 5917.13 6076.89 9692.97 9771.73^z

輸出樣例:

9771.73 9692.97 9169.35 6631.19 6076.89 5917.13 5595.57 3736.98 1006

提示:用鍵盤輸入時,需要用^z作為結束。

參考解答:

  (2)在軟體開發過程中,為了調試程式,常常需要多次運作程式。多次運作的輸入常相同,不免感到麻煩,尤其當資料量還偏多之時。人在做着毫無技術含量的事情!

  可以用的簡便方法是,用輸入重定向避免這種重複:請自建一個檔案a.txt,包含上面輸入樣例中的資料,在(1)的程式中,while之前加句freopen("a.txt","r",stdin);,return 0;之前加一句fclose(stdin);,然後運作程式……。要習慣用這種方式。

  提示1:oj快手們常用的做法是,開考之前,做一個程式模闆如下,這樣可以提高效率。這個技巧可以用于考試,隻要将輸入樣例中的輸入放入檔案即可不過送出時務必注意将freopen一行加上注釋。

  (3)在實際的應用中,資料并不是從鍵盤輸入。輸入重定向的方式也并非“正當”的管道。工程中的做法是将資料放入專門的檔案等待處理。

  下載下傳檔案salary.txt,其中有不超過500名職工的工資。程式設計式讀入這些職工的工資,将按降序排序後顯示并儲存到檔案ordered_salary.txt中。