求助大佬,為什么這樣輸出結(jié)果是50?
#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=sum+i;
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? sum=sum-i;
? ? ? ? }
? ? ? ??
? ? }
? ? printf("sum=%d\n",sum);
return 0;
}
2018-08-08
i++位置錯(cuò)了 當(dāng)i=99的時(shí)候進(jìn)入循環(huán) 此時(shí)i++? i的值就已經(jīng)為100了 sum-i; 然而i=100是滿足循環(huán)條件的 再次進(jìn)入循環(huán)? 又執(zhí)行一次i++? 此時(shí)i為101? sum+i=50;? 把i++放在后面 如下? 這樣就會(huì)先運(yùn)算 后自增 可以正常輸出了
while(i<=100)
? ? {
? ? ? ? if(i%2!=0)
? ? ? ? {
? ? ? ? ? ? sum=sum+i;
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? sum=sum-i;
? ? ? ? }
? ? ?? i++; ? ? ??
? ? ? ??
? ? }