-
皓韵儿
为什么这么麻烦呢?int main(){ int sum = 0; for(int i = 1; i <= 100; ++i){ if(i % 2 == 0){//是2 的倍数 sum -= i; } else{ sum += i; } } printf("sum = %d\n", sum); return 0;}
-
源小猿
sorry阿,没注意还有减号
-
源小猿
递加干嘛用循环?用递归阿
-
叮咚细语
你第一次i就等于1,进入循环第一次sum的值就是2-4,因为i++是改变值为2了,你应该把i++放到sum语句后,另外flag++其实没什么用,可以去掉。
-
望远
如楼主注释的这里的flag是控制符号的,而问题就在变量flag的使用上代码如下:#include <stdio.h> int main(void) { int sum = 0; int i = 1; int flag = 1; while(i<=100){ i=i*flag; sum=sum+i; flag = -flag;//每结束一次循环就改变flag的符号 i++; } printf("sum=%d\n",sum); return 0;}
-
_潇潇暮雨
你那个flag变量的用法搞错了。代码如下:#include <stdio.h>
int main(void) {
int sum = 0;
int i = 1;
int flag = 1;
while(i<=100){
sum += i++ * flag;
flag = -flag;
}
printf("sum=%d\n",sum);
return 0;
}