鱼C论坛

 找回密码
 立即注册
查看: 1443|回复: 3

[已解决]问题求助

[复制链接]
发表于 2020-2-15 20:06:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:求偶数之和,并输出累加和不超过10000的偶数及其前面的偶数之和。我知道自己错了,但是想不通我这错在哪,求指点迷津!
我写的代码如下
#include <stdio.h>
void main ()
{
        int i,sum=0;
        i=2;
        while(sum<=10000)
        {sum=sum+i;
        i=i+2;}
        sum=sum-i;
        i=i-2;
        printf("%d  %d",i,sum);
}
捕获1.PNG
正确答案如下:
#include <stdio.h>
void main ()
{
        int i,sum=0;
        for(i=2; ; i+=2)
        {
                sum =sum+i;
                if(sum>10000)
                {
                        sum=sum-i;//恢复到上一次的sum和i,保证sum在10000以内
                        i=i-2;
                        break;        
                }
        }
        printf("%d  %d",i,sum);
}

捕获2.PNG
最佳答案
2020-2-15 21:03:40
你的i多加了一次,试试sum<10就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-15 21:03:40 | 显示全部楼层    本楼为最佳答案   
你的i多加了一次,试试sum<10就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-15 21:47:08 | 显示全部楼层
本帖最后由 4goodworld 于 2020-2-15 21:48 编辑
 int i,sum=0;
        i=2;
        while(sum<10000)
                {
                        sum=sum+i;
                        i=i+2;
                }
                sum=sum-i+2;
        i=i-4;
        printf("%d  %d",i,sum);
按照你的写法的正确解法
你的问题是
我们先假设i=某值,sum=10000,请注意,是当i=某值,sum=10000?不是的,是i=某值-2才对,你看下你的循环体,当sum=10000时,i又加了+2,简单讲,你所求的“i”=某值-2,sum=10000
继续看下去,按照你设置的程序,sum=10000还要继续执行while
那么
sum=sum(10000)+i(某值)
i=i(某值)+2
你设想下,离开while循环体,你的sum的值=10000+某值,而i=某值+2,
请问你要返回的效果是什么?
sum=10000 然后对应的i
现在呢?
sum实际是=10000+某值
某值怎么来,当前的i-2,
那么,最关键的问题你求的“i”应该是多少?
请往上翻看下
“i”=某值-2
某值=i-2
所以“i”=(i-2)-2=i-4
可能有点绕,请自己理解理解
这些小例子都是一些数学逻辑大于编程本身的,请注意提高自己的数学思维,做题前不妨用笔自己打打草稿,会更好!



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-2-20 13:04:09 | 显示全部楼层
4goodworld 发表于 2020-2-15 21:47
按照你的写法的正确解法
你的问题是
我们先假设i=某值,sum=10000,请注意,是当i=某值,sum=10000?不 ...

看懂了,谢谢,回答的很好,不过没来得及确定最佳答案,系统自动设置了,下次给你补上,不好意思哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 04:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表