标题:小白请教下 为什么输出的d的值总是不正确 本来想输出的是输入范围区间内所有 ...
取消只看楼主
grayhooo
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-10-11
结帖率:100%
 问题点数:0 回复次数:5 
小白请教下 为什么输出的d的值总是不正确 本来想输出的是输入范围区间内所有奇数的立方和
#include<stdio.h>
int main()
{
    int n,i,a,b,s=0,d=0;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        
        for(i=0;i<=b-a;i++)
        {
            if(a%2==0)
            {s=s+a*a;}
            else
            {d=d+a*a*a;}
            a++;
        }
    printf("%d ",s);
    printf("%d\n",d);
    s=0;
    d=0;
    }
   
}
搜索更多相关主题的帖子: 输出 范围 区间 奇数 立方 
2018-10-12 22:09
grayhooo
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-10-11
得分:0 
呃..发现输入数字增大之后s也不是偶数的平方和..
2018-10-12 22:17
grayhooo
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-10-11
得分:0 
非常感谢 但是我还想知道原来的那一部分为什么会出错..
2018-10-13 08:45
grayhooo
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-10-11
得分:0 
for(i=0;i<=b-a;i++)
        {
            if(a%2==0)
            {s=s+a*a;}
            else
            {d=d+a*a*a;}
            a++;
        }
      与   
         for(i=a;i<=b;i++)
        {
            if(i%2==0)
                s+=(i*i);//这里是简写,像a+=1同等于a=a+1
            else
                d+=(i*i);
        }
为什么不等价..
2018-10-13 08:48
grayhooo
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-10-11
得分:0 
回复 6楼 no1xijin
非常感谢,但是s=0和d=0若是删去的话 多次输入的话 后面的输出都会错误..我明白了i放入程序没有必要..但是我不明白为什么放入i之后程序会错误..我认为这两个应该是等价的..
2018-10-13 10:06
grayhooo
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2018-10-11
得分:0 
回复 8楼 no1xijin
非常感谢 一直没注意到b-a中的a是在改变的 谢谢
2018-10-13 11:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490332-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.060697 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved