访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容
下面是引用 ronlain 于 2011-01-08 23:43 发表的 : 你再试看看吧 应该没少也没多 第一次i=1 sum+=1 1不会少最后一次 i=99 sum+=99 i+=2 i=101 这个101下一个 if (i<100) 不会成立 int i=1,sum=0; start: sum+=i; i+=2; if(i<100)
下面是引用 totsi 于 2011-01-31 08:56 发表的 : 原因很简单,因为您是先加完再印,所以i=1,且i+=2时,下一行i已经等于 i = 1 +2了,所以结果当然会是3。因此就像您改的,要先从-1开始加,才会让第一组出来的数字为1。除非您是先印再加。但ronlain大大说的也没错,因为ronlain大大并没有印值,而是直接算总和,所以他一开始把i=1加进来,所以总和也是会对的。而且您也没有说少的1是「没加进和里」还是「没印出来」,我想,这ˋ样要debug可能会有所落差噜~~希望对您有帮助
下面是引用 csr 于 2011-01-31 11:14 发表的 : 感恩大大解说已试过编译还是一样所以仍然有问题谢谢
int sum = 0, i = 1; while ( i <= 100 ) { sum += i; printf("The addition value = %d\n", i); i+=2; } printf("The sum =%d\n", sum); system("pause");
下面是引用 totsi 于 2011-01-31 12:52 发表的 : 那就好玩噜,我用ronlain大大的方式,改用while来写而已,结果同ronloain大大所言。 所以错是错在结果不对噜?XD[code].......