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

求教!!!

#include <stdio.h>

int main()

{

    int sum = 0;  

    int i = 1;   

    int flag = 1; 

    while(i<=100)

    {

        i++;

         if(i%2==1)

        {

            sum+=i;

        }

        else

        {

            sum-=i;

        }

        

    }

  

    printf("sum=%d\n",sum); 

    

    return 0;    

}

答案为什么不对

正在回答

2 回答

额,没有必要用if...else...语句判断吧.因为有flag变量呀,若是你硬是要用if...else...语句判断的话你的逻辑有问题.

正确代码是这样的

while(i<=100)
    {
        i++;
        if(i%2==1){
            sum-=i;
        }else{
            sum+=i;
        }
    }

看到没,是先减法,在加法.为什么这样呢:首先观察式子:1-2+3-4.....会发现奇数是要加上去的,偶数需要减掉.所以

if(i%2==1)

是用来判断是否为奇数.

其实你把你的程序中的if语句的条件改成i%2==0应该会有正确的结果.

写程序真正难处不在于语法,而在于逻辑.希望我的回答对你有帮助.

0 回复 有任何疑惑可以回复我~
#1

a流年 提问者

是新手,慢慢学。符合了i%2= =1的话,不就确定为奇数了吗,那不应该是加上吗?为啥输出是sum-=i
2015-08-09 回复 有任何疑惑可以回复我~

哦,是这样的:

看下这段代码

while(i<=100)
{
    i++;
    if(i%2==1){
        sum-=i;
    }else{
        sum+=i;
    }
}

变量i的初始值是1,对吧.然后在第3行遇到了i++,所以i就是2了,这样一直下去,到最后,i的边界值是101.懂了吗?

所以需要按照上面代码逻辑来写,若是按照你的逻辑来写的话把

i++;

语句放在if语句后面就好了.看下完整代码.

#include <stdio.h>
int main()
{
    int sum = 0;  //定义计算结果变量sum
    int i = 1;    //定义循环数字变量i
    int flag = 1; //定义符号状态变量flag

    while(i<=100)
    {
        if(i%2==0){
            sum=sum-i;
        }else{
            sum=sum+i;
        }
        i++;
    }
    printf("sum=%d\n",sum); 
    return 0;    
}

这样也可以.你的代码把i++的位置调换一下也会达到同样的效果:

#include <stdio.h>
int main()
{
    int sum = 0;  //定义计算结果变量sum
    int i = 1;    //定义循环数字变量i
    int flag = 1; //定义符号状态变量flag

    while(i<=100)
    {
        if(i%2==1){
            sum+=i;
        }else{
            sum-=i;
        }
        i++;
    }
    printf("sum=%d\n",sum); 
    return 0;    
}

要注意我们使用变量i的值是经过i++ 过后的.最后关心下边界值.

0 回复 有任何疑惑可以回复我~
#1

不要为你的无知找借口

不懂的可以再追问.
2015-08-09 回复 有任何疑惑可以回复我~
#2

a流年 提问者 回复 不要为你的无知找借口

懂了,谢谢!
2015-08-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926019    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

求教!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信