[問題] 詢問程式問題

作者: kinkipikachu (不想抬頭看星星)   2016-06-14 22:39:46
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
orwell dev_c++ 5.11
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
no
問題(Question):
這是online judge解題系統的一個題目
公平大陸上有許多小王國,常常為了爭奪領土而開戰,
但是因為公平大陸上的居民都是非常講究公平的,因此絕對不允許有以多欺少的情形,
所以在開戰之前,他們會先統計兩方的兵力,如果有一方的兵力是比較多的,
則那一方必須撤出部分的兵力,使兩方的兵力相等,你能幫他們完成這項工作嗎?
輸入說明:
第一行有一個正整數 N (1<=N<=10) 代表接下來有幾組資料,
接下來有 N 行,每行有兩個正整數 A、B,代表 A、 B兩方的兵力。
輸出說明:
依照每一組資料,輸出哪一方(A 或 B)必須撤兵,以及要撤出多少兵力,
才能使兩方的兵力相等,如果兩方原本的兵力就相同,則請輸出 0,
每組資料輸出完請換行。
範例輸入:help
2
100 150
160 100
範例輸出 :
B 50
A 60
餵入的資料(Input):
如上
預期的正確結果(Expected Output):
我在dev_c++ 都是正確,但不知道為何到judge就會有錯
錯誤結果(Wrong Output):
在 judge的錯誤結果
與正確輸出不相符(line:1)
您的答案為: A 850
正確答案為: B 50
程式碼(Code):(請善用置底文網頁, 記得排版)
#include<stdio.h>
int main()
{
int i,n;
int a[i],b[i];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d %d",&a[i],&b[i]);
}
for(i=0;i<n;i++)
{
if (a[i]>b[i])
{
printf("A ");
printf("%d\n",a[i]-b[i]);
}
else if (a[i]<b[i])
{
printf("B ");
printf("%d\n",b[i]-a[i]);
}
else
{
printf("0\n");
}
}
}
補充說明(Supplement):
請各位大大指教,感謝
作者: CaptainH (Cannon)   2016-06-14 22:47:00
int a[i], b[i] <--- 這行錯
作者: jobsdone (完工了)   2016-06-15 02:17:00
比較好奇為什麼沒有error有人可以解釋嗎
作者: ilms49898723 (LittleBird)   2016-06-15 15:17:00
這只會有warning,用IDE的話要記得把-Wall打開
作者: laladeer (laladeer)   2016-06-16 01:18:00
dev c++允許宣告陣列的時候大小可以用變數
作者: kinkipikachu (不想抬頭看星星)   2016-06-19 23:14:00
感謝各位大大的指教,小弟懂了~~~

Links booklink

Contact Us: admin [ a t ] ucptt.com