下面是引用 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