猿问

各位编程高手能否帮我看一下哪里错了?使用循环计算1-2+3-4+5-6+…-100的值

慕粉3719624
浏览 1858回答 7
7回答

皓韵儿

为什么这么麻烦呢?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; }
随时随地看视频慕课网APP
我要回答