為什么while和for答案不一樣
#include <stdio.h>
int main()
{
? ? /* 小伙伴們:
? ? ? ? ? ?選擇你們認(rèn)為最合理的循環(huán)結(jié)構(gòu)完成功能吧 */
? ? int sum = 0;? //定義計(jì)算結(jié)果變量sum
? ? int i = 1;? //定義循環(huán)數(shù)字變量i
? ? int flag = 1; //定義符號(hào)狀態(tài)變量flag
? ??
? ? //使用while循環(huán)
? ? while(i<=100)
? ? {
? ? ? ? i++;
? ? ? ? if(i%2==0){
? ? ? ? ? sum-=i;
? ? ? ? }
? ? ? ? else{
? ? ? ? ? ? sum+=i;
? ? ? ? }
? ? ? ??
? ? }
? ? /*
? ? //使用for循環(huán)
? ? for(i=1;i<=100;i++)
? ? {
? ? ? if(i%2==0){
? ? ? ? ? sum-=i;
? ? ? ? }
? ? ? ? else{
? ? ? ? ? ? sum+=i;
? ? ? ? }
? ? }? */
? ? printf("sum=%d\n",sum);?
? ??
? ? return 0;? ??
}
while循環(huán)出來(lái)答案是50,for循環(huán)答案是-50,為什么不一樣啊?
2018-10-07
while循環(huán)時(shí)用i++,if里的i是不加1的,那么sum=-1+2-3+4......+100。
2018-10-16
把while的i++放循環(huán)最后就行了
2018-10-16
好吧。。。是我看錯(cuò)了.不好意思
2018-10-16
我怎么感覺(jué)是因?yàn)榈谝粋€(gè)循環(huán)結(jié)束,i和sum沒(méi)有歸零導(dǎo)致-50.
2018-10-08
原因就是i++,while中當(dāng)i=100時(shí),循環(huán)再進(jìn)行一次,i++就變成101了,所以sum加到了101。for循環(huán)當(dāng)i=100時(shí),循環(huán)進(jìn)行一次,i++變成101就終止循環(huán)了。