#2486: c 的解法


B98902055 (LOGO)

學校 : 不指定學校
編號 : 8531
來源 : [140.112.91.122]
最後登入時間 :
2009-12-26 12:19:37
a001. 哈囉 -- Brian Kernighan | From: [61.230.8.158] | 發表日期 : 2009-10-14 00:18

#include<stdio.h>

int main(){
   char s[0];
   while(scanf("%s",&s)){
      printf("hello, %s\n",s);
   }    
   return 0;   


}

 

為什麼這樣不會過呢?

這個跟範例解C++不是同意的嗎?

 

 
#2487: Re:c 的解法

Unknown User

a001. 哈囉 -- Brian Kernighan | From: [163.22.18.83] | 發表日期 : 2009-10-14 16:54

#include

int main(){
   char s[0];
   while(scanf("%s",&s)){
      printf("hello, %s\n",s);
   }    
   return 0;   


}

 

為什麼這樣不會過呢?

這個跟範例解C++不是同意的嗎?

 

char s[0]; ............
 
#2494: Re:c 的解法


B98902055 (LOGO)

學校 : 不指定學校
編號 : 8531
來源 : [140.112.91.122]
最後登入時間 :
2009-12-26 12:19:37
a001. 哈囉 -- Brian Kernighan | From: [220.137.45.80] | 發表日期 : 2009-10-15 21:58

其實問題不是在s[0]

 我已經問到了

 

是因為c裡面eof的回傳值是-1   cpp的回傳值是0

所以才會造成迴圈無法跳出

 

只要加上&& >0  這樣就可以了

 
#2496: Re:c 的解法


tiancaihb (伪红学家)

學校 : 北京师范大学附属实验中学
編號 : 8304
來源 : [114.243.236.217]
最後登入時間 :
2009-12-02 19:10:44
a001. 哈囉 -- Brian Kernighan | From: [123.122.124.161] | 發表日期 : 2009-10-16 15:46

最好的方法还是while(scanf(...)!=EOF)
 
#2497: Re:c 的解法

Unknown User

a001. 哈囉 -- Brian Kernighan | From: [163.22.18.83] | 發表日期 : 2009-10-16 15:58

其實問題不是在s[0]

 我已經問到了

 

是因為c裡面eof的回傳值是-1   cpp的回傳值是0

所以才會造成迴圈無法跳出

 

只要加上&& >0  這樣就可以了

用 s[0] 明明就會有問題  不要硬凹    多看書  
#2558: Re:c 的解法


B98902055 (LOGO)

學校 : 不指定學校
編號 : 8531
來源 : [140.112.91.122]
最後登入時間 :
2009-12-26 12:19:37
a001. 哈囉 -- Brian Kernighan | From: [140.112.91.122] | 發表日期 : 2009-10-27 14:39

= ="我沒有在硬ㄠ的意思

因為我那時候改成10好像也沒有對所以我以為問題不在那  恩

 為什麼輸入0的時候自己測試也能對呢?

 
ZeroJudge Forum