为了账号安全,请及时绑定邮箱和手机立即绑定

循环计算1-2+3-4+5-6+……-100.运行结果:sum=-50

循环计算1-2+3-4+5-6+……-100.运行结果:sum=-50

C C++
续点一支烟丶 2017-02-10 16:04:40
#include<stdio.h> int main() { int n, s = 0; n = 1; while (n <= 100) { n++; if (n % 2 == 0) { s = s - n; } else { s = s + n; } } printf("sum=%d\n", s); return 0; } 我的运行结果是sum=50.。。是不是思路有问题
查看完整描述

3 回答

已采纳
?
o学者o

TA贡献7条经验 获得超5个赞

你这是从 n++ 开始计算的啊,也就是从 2 开始一直计算到了101。 把 n++ 放循环最后就好了。

#include<stdio.h>
int main()
{
    int n, s = 0;
    n = 1;
    while (n <= 100)
    {
        if (n % 2 == 0)
        {
            s = s - n;
            printf("sum=%d\n", s);
        }
        else
        {
            s = s + n;
            printf("sum=%d\n", s);
        }
        n++;
    }
    printf("sum=%d\n", s); 

    return 0;
}


查看完整回答
反对 回复 2017-02-10
?
亚努人

TA贡献58条经验 获得超75个赞

有两种改法:要么把n的初始值改为0,要么把n++那句放到while循环的最后一句。 你的程序中,n的初始值为1,刚刚进入循环n就自增了,导致后面的结果也跟着乱了。
查看完整回答
2 反对 回复 2017-02-10
  • 续点一支烟丶
    续点一支烟丶
    试了一下。只把n的初始值改成0结果就是51.后面那个没毛病。把n++放最后,n的初始值不管是0还是1,最后结果都是-50
  • 3 回答
  • 1 关注
  • 1745 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信