搜索
查看: 3965|回复: 20
打印 上一主题 下一主题

求大神帮忙改正一下程序。

[复制链接]
跳转到指定楼层
#
发表于 2012-8-13 21:57:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
6啊哈币
本帖最后由 shenhua 于 2012-8-13 21:59 编辑

#include "stdio.h"
void main()
{
long int a=0,b=0,c=-3,d=0,g=0,e,f;
while(a<123451)
{a+=7;
b+=a;}
while(c<123447)
{c+=10;
d+=c;}
for(f=1;f<=123456;f++)
{
if(f%10==0&&f%10==7)
{
g+=f;}
e=b+d-g;
printf("%d",e); }   }

我在此网站上的教程上知道这个程序的编法了,我过我在想这么编怎么就错了呢?求大神帮忙改一下。
20#
发表于 2013-9-11 22:18:34 | 只看该作者
#include "stdio.h"
void main()
{
long int a=0,b=0,c=-3,d=0,g=0,e,f;
while(a<123451)
{a+=7;
b+=a;}
while(c<123447)
{c+=10;
d+=c;}
for(f=1;f<=123456;f++)
{
if(f%10==0&&f%10==7)
{
g+=f;}
e=b+d-g;
}
printf("%d",e);  }
19#
发表于 2013-7-29 18:13:36 | 只看该作者
你得到的结果是什么?
18#
发表于 2013-3-31 20:48:51 | 只看该作者
此挑战题目是:“请问1~123456之间所有7的倍数和末尾含7的数的和是?”

反复读了你的程序,才明白你的原意应该是分别计算出7的倍数和(b)、末尾是7的数的和(d)、既是7的倍数末尾又是7的数的和(g),然后计算b+d-g也就完成了挑战。
按照这个思路,你程序中g的计算错了,同时做为循环变量用的a、c、f 完全可以合并为一个变量。
计算g所用到的逻辑条件应该是(f % 10 == 7 && f % 7 == 0),而你程序中的条件却是末尾既是0又是7,哪有这样的数啊!

15楼的程序简洁明了,应该说是针对这个挑战的最佳程序。不知你为何没有结帖。
17#
发表于 2013-3-31 08:36:26 | 只看该作者
不错不错,学习了
16#
发表于 2012-9-1 20:12:12 | 只看该作者
最后一个 if 语句条件应该改为或者   ||
15#
发表于 2012-9-1 16:31:14 | 只看该作者
好像没错啊 不知道啊
14#
发表于 2012-8-15 09:37:18 来自手机 | 只看该作者
Spendour 发表于 2012-8-15 09:17 淡定 ..

声明那么多变量…还如此淡定!牛人>:-<
13#
发表于 2012-8-15 09:17:45 | 只看该作者
淡定  ..  {:soso__5679357240800838702_4:}
12#
 楼主| 发表于 2012-8-13 23:23:00 | 只看该作者
月光疾风 发表于 2012-8-13 22:56

这个我想我口头解释不了,你顺着程序过程看就知道了,不正我还没有发现没用的变量。
11#
发表于 2012-8-13 22:56:20 | 只看该作者
shenhua 发表于 2012-8-13 22:53
噢,忘了,教程里面是有计数器的,不过好像用的我这个方法,你仔细看看吧,这个不用计数器的。

声明这么多的变量:a=0,b=0,c=-3,d=0,g=0,e,f;
都有啥子意思?
10#
发表于 2012-8-13 22:56:15 | 只看该作者
本帖最后由 月光疾风 于 2012-8-13 22:59 编辑
{:soso__2252603165368053288_4:}..

9#
发表于 2012-8-13 22:55:58 | 只看该作者
shenhua 发表于 2012-8-13 22:53
噢,忘了,教程里面是有计数器的,不过好像用的我这个方法,你仔细看看吧,这个不用计数器的。

声明这么多的变量:a=0,b=0,c=-3,d=0,g=0,e,f;
都有啥子意思?
8#
 楼主| 发表于 2012-8-13 22:53:23 | 只看该作者
月光疾风 发表于 2012-8-13 22:38
[mw_shl_code=c,true]#include "stdio.h"
void main()
{

噢,忘了,教程里面是有计数器的,不过好像用的我这个方法,你仔细看看吧,这个不用计数器的。
7#
 楼主| 发表于 2012-8-13 22:49:46 | 只看该作者
顺便说一下,第五行修改成while(a<123452)
6#
发表于 2012-8-13 22:38:41 | 只看该作者
shenhua 发表于 2012-8-13 22:33
???
有呀

[mw_shl_code=c,true]#include "stdio.h"
void main()
{
    long int a=0,b=0,c=-3,d=0,g=0,e,f;
    while(a<123451)
    {
        a+=7;     //0=0+7       a=7
        b+=a;     //0=0+7       b=7
    }
    while(c<123447)
    {   
        c+=10;  //-3=-3+10     c=7
        d+=c;   //0=0+-3       d=-3
    }
    for(f=1;f<=123456;f++)
    {
        if(f%10==0&&f%10==7)     //等于0,or等于7
        {
            g+=f;     //0=0+f
        }
//计数器在那! [/mw_shl_code]
全部都是7
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表