| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1154 人关注过本帖
标题:关于 if 的运用问题  (我是新手)
取消只看楼主 加入收藏
青草蓝天
Rank: 2
等 级:论坛游民
帖 子:178
专家分:20
注 册:2008-12-6
结帖率:90%
收藏
 问题点数:0 回复次数:2 
关于 if 的运用问题  (我是新手)
最近刚学C 
对if 的运用还不是很明白,有时已经用if把输入值进行界定了,可是运行时还是不能按照我分的组运行.
我表达能力也不好,我用题来说明我的疑惑吧:
要求输入一个位数不超过5数字后能指出它的位数以及各位上的数字分别是什么.
我知道能用循环做,还很简单.可我想试试用if,
主要步骤就是
if(s>=10000 && s<100000)
    {
        a=s/10000;
        b=s/1000-10*a;
        c=s/100-100*a-10*b;
        d=s/10-1000*a-100*b-10*c;
        e=s-10000*a-1000*b-100*c-10*d;

        printf("你输入的数字的位数是5,\n各位上的数字是:%d,%d,%d,%d,%d.\n",a,b,c,d,e);
    }
后面的就是类似的方法
可是最后问题就出来了 比如我输入个123,显示结果就是

你输入的数字的位数是5,
各位上的数字是:0,0,1,2,3.
你输入的数字的位数是4,
各位上的数字是:0,0,1,2,3.
你输入的数字的位数是3,
各位上的数字是:0,0,1,2,3.
你输入的数字的位数是2,
各位上的数字是:0,0,1,2,3.
你输入的数字的位数是1,
各位上的数字是:0,0,1,2,3.

我用if对s进行了限定,为什么还会出现限定范围之外的结果?

请哪位指点下,最好能点一下用if限定时的用法,谢谢.
搜索更多相关主题的帖子: 能力 
2008-12-06 20:17
青草蓝天
Rank: 2
等 级:论坛游民
帖 子:178
专家分:20
注 册:2008-12-6
收藏
得分:0 
ls 的 很好
我发一下我的 吧
大家帮我看看哪里的问题
#include <stdio.h>
void main()
{
    int x,a,b,c,d,e;

    printf("请输入一个不超过五位的正整数:\n");
    scanf("%d",&x);


    if(x<100000 && x>=10000 );
    {
        a=x/10000;
        b=x/1000-10*a;
        c=x/100-100*a-10*b;
        d=x/10-1000*a-100*b-10*c;
        e=x-10000*a-1000*b-100*c-10*d;
    
    printf("它的位数是5\n它的各位上的数分别是:%d,%d,%d,%d,%d.\n",a,b,c,d,e);
    }

    if(x<10000 && x>=1000);
    {
        a=x/10000;
        b=x/1000-10*a;
        c=x/100-100*a-10*b;
        d=x/10-1000*a-100*b-10*c;
        e=x-10000*a-1000*b-100*c-10*d;
       
    
    printf("它的位数是4\n它的各位上的数分别是:%d,%d,%d,%d.\n",a,b,c,d);
    }

    if(x<1000 && x>=100);
    {
        a=x/10000;
        b=x/1000-10*a;
        c=x/100-100*a-10*b;
        d=x/10-1000*a-100*b-10*c;
        e=x-10000*a-1000*b-100*c-10*d;
       
    printf("它的位数是3\n它的各位上的数分别是:%d,%d,%d.\n",a,b,c);
    }

    if(x<100 && x>=10);
    {
        a=x/10000;
        b=x/1000-10*a;
        c=x/100-100*a-10*b;
        d=x/10-1000*a-100*b-10*c;
        e=x-10000*a-1000*b-100*c-10*d;
       
       
    printf("它的位数是2\n它的各位上的数分别是:%d,%d.\n",a,b);
    }

    if(x<10 && x>=1);
    {
        a=x/10000;
        b=x/1000-10*a;
        c=x/100-100*a-10*b;
        d=x/10-1000*a-100*b-10*c;
        e=x-10000*a-1000*b-100*c-10*d;


    printf("它的位数是1\n它的各位上的数分别是:%d.\n",a);
    }

}
输入1 结果很诡异.
2008-12-07 12:31
青草蓝天
Rank: 2
等 级:论坛游民
帖 子:178
专家分:20
注 册:2008-12-6
收藏
得分:0 
错误已经找出来了
8 9 楼说的对
我在if后多加了";"
太粗心了 这种错误系统是查不出来的
以后要注意了啊
谢谢大家啊
2008-12-07 19:56
快速回复:关于 if 的运用问题  (我是新手)
数据加载中...
 
   



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

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