用while 实现1-3+5…2n-1 跑不出来 答案

img


题目在注释处 希望指点给出建议和与题目匹配答案方便自主消化改进谢谢吖

是计算1-3+5-7…+(2n-1)这个式子的第n项后再停止吗?如果是的,可以在while循环里面用一个变量来判断,计算第n项后再停止计算即可。

修改如下:



#include <stdio.h>

int main(void){
    
    int a=1,n=1,sum=0,flag=1;
    printf("请输入n的值\n");
    scanf("%d",&n);  
    
    int i=1;
    while(i<=n){    // 计算到第n项后停止 
    
        a=(i*2-1)*flag; // 每一项的值为 (项数*2-1 ) 乘以符号位 flag的值 
        sum+=a;  // 累积每一项的值 
        //printf("i=%d,a=%d,sum=%d\n",i,a,sum);
        flag=-flag;      // 符号位变换 
        
        i++;  // 计算下一项 
    } 
    
    printf("%d",sum);
    
    return 0;
} 

img

n++,默认为true,死循环

img


下面 重新改过的 基本和答主下面参考模板差不多 为什么运行结果不出

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^