| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1057 人关注过本帖
标题:这个程序很怪呀
只看楼主 加入收藏
xueweidng
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2008-11-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:18 
这个程序很怪呀

想输入一个五位数然后就将这个五位数的各个位值输出来,为什么输不出来?

#include<stdio.h>
main()
{
    int a[5],i;
    int usescanf;
    printf("请输入一个五位数:");
    scanf("%d\n",&usescanf);
    a[0]=usescanf/10000;
    printf("a[0]=",a[0]);
    a[1]=(usescanf-a[0]*10000)/1000;
    a[2]=(usescanf-a[0]*10000-a[1]*1000)/100;
    a[3]=(usescanf-a[0]*10000-a[1]*1000-a[2]*100)/10;
    a[4]=(usescanf-a[0]*10000-a[1]*1000-a[2]*100-a[3]*10);
    for(i=0;i<=4;i++)
    {
        printf("a=%d  ",a[i]);
   
   
    }



}
搜索更多相关主题的帖子: 10000 include 
2009-09-11 13:06
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:1 
scanf("%d\n",&usescanf); /* 多了个"\n",去掉就可以了。 */

努力—前进—变老—退休—入土
2009-09-11 13:11
zhjr5201314
Rank: 4
等 级:业余侠客
帖 子:63
专家分:238
注 册:2009-9-10
收藏
得分:1 
同意2楼
2009-09-11 13:38
w378567402
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2008-3-11
收藏
得分:1 
#include<stdio.h>
main()
{
    int a[5],i;
    int usescanf;
    printf("请输入一个五位数:");
    scanf("%d",&usescanf);
    a[0]=usescanf/10000;
     
    a[1]=(usescanf-a[0]*10000)/1000;
    a[2]=(usescanf-a[0]*10000-a[1]*1000)/100;
    a[3]=(usescanf-a[0]*10000-a[1]*1000-a[2]*100)/10;
    a[4]=(usescanf-a[0]*10000-a[1]*1000-a[2]*100-a[3]*10);
    for(i=0;i<=4;i++)
    {
        printf("a[%d]=%d  ",i,a[i]);
     
     
    }
 
 
 
}
2009-09-11 14:38
xuyangmin
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2009-8-18
收藏
得分:1 
同意楼上
2009-09-11 15:11
liuyufeng825
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2009-9-7
收藏
得分:1 
2楼正解
不过这个程序可以简洁一些的
#include<stdio.h>
main()
{
    int i;
    int usescanf;
    printf("请输入一个五位数:");
    scanf("%d",&usescanf);
     
    for(i=0;i<=4;i++)
    {
        printf("a=%d  ",usescanf%10);
        usescanf=usescanf/10;
    }
}
2009-09-12 13:01
ljt0000mf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
收藏
得分:1 
恩,不错
2009-09-12 15:55
已屏蔽
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:124
注 册:2009-9-5
收藏
得分:1 
main()  
{  
    int a[5];  
    printf("请输入一个五位数:");  
    for(i=0;i<=4;i++)   
    {   
        scanf("%1d",&a[i]);   
    }  
    for(i=0;i<=4;i++)  
    {  
        printf("a=%d  ",a[i];  
    }  
}

可以这样的吧。。。?
好像有这个位数的功能
2009-09-12 19:52
LEED
Rank: 2
等 级:论坛游民
帖 子:75
专家分:43
注 册:2009-8-26
收藏
得分:1 
回复 8楼 已屏蔽
你好。。我认为你的想法很好。。我调试了一下有几个错。。
我改了一下。。

main()  
{  
    int a[5],i;  
    printf("请输入一个五位数:");  
    for(i=0;i<=4;i++)   
    {   
        scanf("%1d",&a[i]);   
    }  
    for(i=0;i<=4;i++)  
    {  
        printf("a=%d  ",a[i]);  
    }  
    return(i);
}
其实我只是初学者。。也不知道那个return有什么作用。。只是按照调试出错少了一个返回值。。就加了一个。还望高手指点指点。。
2009-09-12 21:13
LEED
Rank: 2
等 级:论坛游民
帖 子:75
专家分:43
注 册:2009-8-26
收藏
得分:0 
回复 楼主 xueweidng
我觉的楼上的说的都很正确。。
特别是八楼很简洁。。
我觉的变量应该为    long int。。
毕竟int 的范围在-32768~32767
输入大于32767和小于-32768得不到正确结果。。
只是个人的愚见。。。

[ 本帖最后由 LEED 于 2009-9-12 21:20 编辑 ]
2009-09-12 21:17
快速回复:这个程序很怪呀
数据加载中...
 
   



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

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