下面是引用 csr 於 2011-01-31 21:05 發表的 : [attachment=727415]這就是我編譯的結果請指教謝謝
int main(void) { int i=1,sum=0; start: sum+=i; printf("%d",i); i+=2; if(i<100) { printf("+"); goto start; } printf("=%d\n",sum); system("pause"); return 0; }
if(i<100 &&(i%2 == 1) ) { printf("+"); goto start; }
int main(void) { int i=0,sum=0,; start: i+=1; if(i%2 == 0) { goto start; } sum+=i; printf("%d",i); if(i<100 && i != 99) { printf("+"); goto start; } printf("=%d\n",sum); system("pause"); return 0; }
下面是引用 totsi 於 2011-02-03 10:59 發表的 : 原因也很簡單,問題是因為您不管是奇數還是偶數,都會走到printf("+")。所以顯示"+"應該是有真的加值進來時,才顯示"+"才對。所以簡單作法是[code] if(i<100 &&(i%2 == 1) ) .......
if(i<100) { if(i%2 == 1 && i != 99) { printf("+"); } goto start; }
下面是引用 totsi 於 2011-02-08 10:27 發表的 : 不好意思,我忘記您的作法會出現只有跑一次的問題XDDD如使用您的方式,可以用的code如下:複製程式 if(i<100) { if(i%2 == 1 && i != 99) { printf("+"); } goto start; } 還有,最後還是老生常談,迴圈非必要時,少用goto來玩。不然會很常在除錯XDD。for...do while的反而會比較好抓XDD