[0.0] UVa 11172

http://luckycat.kshs.kh.edu.tw/homework/q11172.htm
http://uva.onlinejudge.org/external/111/11172.html

非常善良的一題,根本就是OJ中的史萊姆、波利般的存在啊!
就讓牠成為踏上英雄之路的第一步吧,牠一定會感到很光榮的!
再不然..OJ的第一次就獻給他了,這樣夠光榮了吧啊哈哈哈哈~


好,題意就不解釋了,先聚焦在最容易犯錯的地方
Input - 也就是輸入格式,批改娘會遵從說好的格式給你數據
Output - 也就是輸出格式,這是事先約定好的,不遵守會被怒退件喔!

這題非常善良,說好第一行就會告訴你總共有多少組數據,所以只要先讀下第一個整數,就會知道它總共有幾組!

scanf("%d", &count);

讀完後我們就知道我們必須處理count件數據,所以!我們可以把count當作倒數的計數器來使用,像這樣子:
while(count > 0)
{
    count = count-1;
}

當然你也可以用數的,1次、2次、3次、…直到count次
i = 1;
while(i <= count)
{
    i = i+1;
}

也許第一次寫,可能會擔心說數字湊不好,可能多跑或少跑一次,一開始要想清楚比較難,沒關係!只要把count代入2或3等等小數字,用「人腦」順著程式流程想像一次,就會知道有沒有多算或少算了,再視多或少進行調整!這方法簡單有效~

接下來看數字範圍,整數|a|,|b| < 1000000001,而1000000001 <= 2147483647
所以它是整數,而且int型別可以存得下,放心下手!注意如果不是整數,直接用int處理可是必死無疑喔!
畢竟拿釣竿釣野豬、拿弓箭捕獸夾捕魚,絕對很奇怪吧!所以要視情況用適合的方式~整數就要用整數處理!

再來是output,這邊翻譯寫得比較模糊不清,不如來看一下原文的節錄
For each line of input 對於每一行輸入
produce one line of output. 輸出一行輸出
所以輸出的第一行要是第一組數據的結果,依此類推,第N行要是第N組數據的結果
沒有要求每組之間空一行之類的,所以非常容易處理!

題目要求是輸入兩個整數,輸出>、<或=,但是在輸入完兩個整數之前是不會知道該輸出什麼的,所以第一步絕對是先輸入!
scanf("%d%d", &a, &b);

接下來是判斷大小決定輸出!所以說,會因為a和b的大小關係,走入不同平行世界,得到不同的結局!
因此我們想起了怎麼做分歧: if

if(a == b)  <== 如果相等就輸出=
{
    printf("=\n");
}
else  <== 如果不是相等的話
{
    if(a > b)  <== 如果a比較大,輸出>
    {
        printf(">\n");
    }
    else  <== a沒比較大,可在這個世界a和b也不相等,那從三一律得知a一定比較小
    {
        printf("<\n");
    }
}

記得\n是必要的喔!因為那是一行的結束,我們要有始有終,所以每行該結束時都要加上\n

好,感覺很對!接下來F9編譯執行,將範例輸入複製下來,貼到小黑窗上面看看結果是否符合!
如果對著小黑窗按右鍵貼不上,就對著標題列(小黑窗最上面藍色那條)按右鍵 => 預設 => 快速編輯模式(打勾) => 確定,然後關掉重新執行!以後在小黑窗上按右鍵就會貼上啦~
結果應該長得像這樣:
3
10 20
<
20 10
>
10 10
=

WTF!? 範例正解可沒有那堆輸入時的數字啊!
不用擔心,那是小黑窗會「自動覆述你輸入的東西」的貼心設計,以防你打了什麼小黑窗完全不顯示,打錯了也不知道!
所以那不會是你輸出的一部份,只是小黑窗好心地覆述了你的輸入數據,並不會影響任何東西,不用擔心!

真的不放心的話,在main()的最前面加上
freopen("_input.txt", "r", stdin);
freopen("_output.txt", "w", stdout);
之後到你放程式碼的地方,把輸入數據寫到_input.txt裏,執行後的結果就會寫到_output.txt裏,你就可以看到實際你輸出的東西長什麼樣子,不會再受小黑窗覆述的影響了!
但是上傳之前記得把這兩行給拿掉喔!因為它們一個是把scanf()從讀取小黑窗輸入給強迫轉成從檔案讀取,一個是把printf()從小黑窗輸出的行為強迫轉成寫入至檔案;會導致批改娘誤判的喔!
因為不符合批改娘預期的溝通方式,所以會導致很多不必要的誤會;而且讀寫檔案對批改娘而言是很危險的動作,通常是被禁止的!
你讀寫的檔案很可能會是批改娘體內的一部份,你很有可能破壞掉某些重要組織或器官,所以一般而言會嚴禁讀寫檔案的行為!知道嚴重性了吧?
通常好的批改娘也不會讓你有機會成功讀寫檔案啦…

在了解小黑窗之後,應該可以預測printf()輸出什麼會長怎樣,或者即使和小黑窗覆述輸入交雜,也可以看出自己輸出的東西長什麼樣子
之後應該不需要特意用讀寫檔案方式來檢查了~

檢查過範例正確,自己想幾個例子測試看看,都沒問題就可以準備上傳接受批改娘的審判啦!
記得先自己測過,最低限度也要可以執行並且通過範例的測試再上傳,這可是基本禮貌喔!

上傳時,到UVa OJ左邊選單找到Quick Submit,填好題號和語言,按下Submit!
接著到左邊選單找到My Submissions觀看結果!如果還沒出來就等幾秒後重新整理。
個人習慣會把Quick Submit和My Submissions各開一個新分頁,切換比較方便!

那麼,預先恭喜大家拿下首殺啦!

沒有留言:

張貼留言