我這樣的也算對(duì)的???
花了沒看答案,尋思自己想花了挺久想出來的,發(fā)現(xiàn)跟答案只有一點(diǎn)點(diǎn)不一樣,但是感覺輸出結(jié)果應(yīng)該完全不一樣,求大神看看
#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++;
? ? ? ? flag*=-1;
? ? ? ? sum-=flag*i;
? ? }
? ??
??
? ? printf("sum=%d\n",sum);?
? ??
? ? return 0; ? ?
}
2017-07-24
首先,flag定義的初值是1,而while語句中的flag值為 flag * (-1)=-1,sum的值為 -(-flag) * i =1,所以第一項(xiàng)的值為 1;i 進(jìn)行自加運(yùn)算,值變?yōu)?,其次,因?yàn)榈谝淮芜\(yùn)算的時(shí)候flag為 -flag,然后又進(jìn)行了一次 賦值 -(-flag),所有第二項(xiàng)的flag的值為 1,然后進(jìn)行sum運(yùn)算:-(flag)* i =-2 ;這樣,奇數(shù)項(xiàng)就變成正數(shù),偶數(shù)項(xiàng)就變成負(fù)數(shù)。?依次計(jì)算得到最終結(jié)果。
2017-07-14
采納我
2017-07-14
是對(duì)的