求大佬解答一下
#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++;
? ? ? ? sum+=i*flag;
? ? ? ? flag*=-1;
? ? }
? ??
? ? i = 1;? //重新初始化變量i
? ??
? ? //do-while循環(huán)
? ? do{
? ? ? ? i++;
? ? ? ? sum+=i*flag;
? ? ? ? flag*=-1;
? ??
? ? ? ??
? ? }while(i<=100);
? ??
? ? i = 1;? //重新初始化變量i
? ??
? ? //使用for循環(huán)
? ? for(i=1;i<=100;i++)
? ? {
? ? ? ? sum+=i*flag;
? ? ? ? flag*=-1;
? ? }??
? ? printf("sum=%d\n",sum);?
? ??
? ? return 0;? ??
}
為什么輸出結(jié)果是-150
2021-09-14
在每個(gè)循環(huán)之前都要對(duì)sum 和flag重新設(shè)置初值,因?yàn)榻?jīng)過第一個(gè)循環(huán)以后,sun 和flag已經(jīng)非0和1,flag是-1.