| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 502 人关注过本帖
标题:为什么范围不同,结果不同于预期
只看楼主 加入收藏
bianchengljy
Rank: 2
等 级:论坛游民
帖 子:42
专家分:37
注 册:2011-7-14
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:8 
为什么范围不同,结果不同于预期
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
   long i,a;
   for(i=1;i<=9999;i++)
   {     if(i%7==0)
        {
           a=i;
            while(a)
            {
              if(a%10==5)
              {
                  printf("%ld\n",i);
                  break;
              }
              a=a/10;
            }

        }
   }
  return 0;
}
题目为 输出1到9999中能被7整除,而且至少有一位数字是5的所有数字

好像结果应该从35开始   但codeblock输出结果从5005开始
后来我把循环中i=9999改为i=999,结果按预期从35开始
这是为什么?
2012-11-05 18:32
星闪夜空
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:50
专家分:119
注 册:2012-9-15
收藏
得分:4 
回复 楼主 bianchengljy
    楼主,你难道没有想过因为数值太多的原因,命令窗口容纳不下的原因吗?你把printf("%ld\n",i)改为printf("%ld ",i)就可以看到了。
2012-11-05 19:22
Glost
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:54
专家分:48
注 册:2010-10-5
收藏
得分:4 
看了一下你的代码,感觉对于判断数字中是否有一位数字是5的处理有点问题,我的办法可能比较笨...
/*从0-9999中所有能被7整除而且数字中带有5的数*/
#include<stdio.h>
int main()
{
    int i,n=0;
    for(i=1;i<9999;i++)
    {
        //判断条件有点长,就是剔除不含5的数字,我不知道其他的办法了
        if(i%7==0 &&( ( i%5==0 && i%2!=0 )|| ( i/10==5 ) || (i/100==5) || ( i/1000==5 )))
        {
            printf("%d\t",i);
            n++;
            if(n%8==0)
                printf("\n");
        }
    }
    printf("\n");
    return 0;
}

只有一条路不能选择—那就是放弃的路;只有一条路不能拒绝—那就是成长的路。
2012-11-05 19:38
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:4 
2楼正解!


[fly]存在即是合理[/fly]
2012-11-05 19:46
bianchengljy
Rank: 2
等 级:论坛游民
帖 子:42
专家分:37
注 册:2011-7-14
收藏
得分:0 
以前从未碰见命令窗口容纳不下的情况,多谢2楼建议
另问  如何能避免这种情况
求高手 说一下有关知识
2012-11-05 22:50
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
以下是引用bianchengljy在2012-11-5 22:50:53的发言:

以前从未碰见命令窗口容纳不下的情况,多谢2楼建议
另问  如何能避免这种情况
求高手 说一下有关知识

输出满屏时暂停,就如你暂停程序窗口防止消失一样的原理。

授人以渔,不授人以鱼。
2012-11-05 23:03
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3451
专家分:19340
注 册:2012-3-31
收藏
得分:4 
路过

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-11-05 23:03
bianchengljy
Rank: 2
等 级:论坛游民
帖 子:42
专家分:37
注 册:2011-7-14
收藏
得分:0 
那怎样才能看见上面不显示的部分
2012-11-06 22:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
纯粹的控制台是不能回滚信息的(好像最多只有300行吧),你只能看清楚了再继续显示下面的信息。要回滚信息,你必须使用扩展库,视你的系统环境和编译器而定。

授人以渔,不授人以鱼。
2012-11-06 23:05
快速回复:为什么范围不同,结果不同于预期
数据加载中...
 
   



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

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