求解題思路
任務(wù)
使用循環(huán)計(jì)算1-2+3-4+5-6+…-100的值?
在編輯器中給出了三種循環(huán)體結(jié)構(gòu)的部分代碼,請選擇合適的循環(huán)結(jié)構(gòu)補(bǔ)全代碼實(shí)現(xiàn)此功能。
運(yùn)行結(jié)果為:?sum=-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; //定義符號狀態(tài)變量flag
? ??
? ? //使用while循環(huán)
? ? while(i<=100)
? ? {
? ? ? ? ?
? ? ? ? if(i%2!=0)
? ? ? ? {
? ? ? ? ? ? sum+=i;
? ? ? ? ? ? //printf("+%d\n",i);
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? sum-=i;
? ? ? ? ? ? //printf("-%d\n",i);
? ? ? ? }
? ? ? ? i++;
? ? ? ??
? ? }
? ??
? ? i = 1; ?//重新初始化變量i
? ? printf("sum=%d\n",sum);?
? ??
? ? return 0; ? ?
}
2016-11-21
首先 ?i ?的遞增很容易解決,那么主要問題在于如何使 ?i ?呈現(xiàn)出正負(fù)交替的狀態(tài),這是候引入了狀態(tài)變量flag,flag就是改變數(shù)值的正負(fù)的一個(gè)便捷的量,通過flag *= -1; ? ? i *= flag; ? 就能使得 ?i ?的指實(shí)現(xiàn)間隔的正負(fù),
我flag以立,i 還不快快轉(zhuǎn)變 ?哼╭(╯^╰)╮