作者xatier (一串電研阿飄先生)
看板C_and_CPP
標題[問題] 指派
時間Mon Oct 5 16:26:02 2009
我在寫ZJ的d468: 簡單求冪題
http://zerojudge.tw/ShowProblem?problemid=d468
編譯器(Dev C)告訴我else 前面的分號有問題
然後我把 ans = a; 這行注釋掉就沒問題了
但這樣一來這個程式不就沒用了0.0
請問各位大大為什麼會這樣呢??
#include <stdio.h>
int main () {
long long a, n, i, ans;
while (scanf("%lld", &a) != EOF) {
scanf("%lld", &n);
if (a == 0 && n == 0) {
printf("All Over.\n");
break;
}
ans = a;
else {
for (i = 0; i < n; i++) {
ans = ans*a;
}
printf("%lld", ans);
}
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.60.107.233
※ 編輯: xatier 來自: 210.60.107.233 (10/05 16:26)
→ xatier:然後我把ans = a;那行搬到scanf("%lld", &a)下面就OK了 10/05 16:31
→ xatier:為什麼會這樣?? 10/05 16:32
→ VictorTom:else要緊接在if/else if的block之後, 你ans=a;插在中間 10/05 16:42
→ VictorTom:不合語法, 自然compiler不會讓你過; 至於那行到底該放哪 10/05 16:43
→ VictorTom:請你自己研究一下自己的code flow再決定吧:) 10/05 16:43
→ xatier:對厚,差點忘了,謝謝大大的指點 10/05 16:49