有趣但不難的題目
阿書: 轉九進位就AC了 (雷)
//**************************************
char buf[30];
long long val;
int main(){
while(gets(buf)){
if(buf[0]=='0')break;
val=0;
for(int i=0; buf[i]; i++){
if(buf[i]>'6')buf[i]--;
val= val*9+buf[i]-48;
}
printf("%I64d\n",val);
}
}
不好意思,我想請教一個問題:為什麼for迴圈的第二項( buf[i] )可以這樣寫?不是應該要寫i>=<某數嗎??我正努力提升TIOJ中的AC數,請教教我吧!!
回覆刪除[版主回覆02/12/2011 23:05:54]好像隔有點久才看到這個回應抱歉QQ
for迴圈中間那個是 當它為false時會跳出迴圈
而在C標準中,非0表示true、0表示false
所以當它這樣寫時 意義同buf[i] != 0
以上ˇ