| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 967 人关注过本帖
标题:这个代码有啥问题?弄了一晚上,脑袋有点抽筋。
取消只看楼主 加入收藏
将是高手
Rank: 1
等 级:新手上路
帖 子:79
专家分:5
注 册:2011-6-18
结帖率:100%
收藏
 问题点数:0 回复次数:7 
这个代码有啥问题?弄了一晚上,脑袋有点抽筋。
呵呵呵呵呵呵呵,我是新手,高手看了偷偷笑就行了。
题目如下:

给一个不多于五位的正整数,要求:1,求出它是几位数。2,分别输出每一位数字。3,按逆序输出各位数字,例如原为234,后为432.

我的代码如下。
#include"stdio.h"
#include"stdlib.h"
int main()
{
    int a,b,c,d,e;
    long num;
    scanf("%d",&num);   
    if(num/100000>1)
    {
        e=num%10;
        d=((num%100)-e)/10;
        c=((num%1000)-(d*10+e))/100;
        b=((num%10000)-(c*100+d*10+e))/1000;
        a=(num-(b *1000+c*100+d*10+e))/10000;
        printf("have 6 numbers. it is %d%d%d%d%d.\n",a,b,c,d,e);
        printf("%d%d%d%d%d",e,d,c,b,a);
    }
    else if(num/10000>1)
    {
            e=num%10;
        d=((num%100)-e)/10;
        c=((num%1000)-(d*10+e))/100;
        b=((num%10000)-(c*100+d*10+e))/1000;
        a=(num-(b *1000+c*100+d*10+e))/10000;
            printf("have 5 numbers. it is %d%d%d%d%d.\n",b,c,d,e);
        printf("%d%d%d%d",e,d,c,b);
    }
    else if(num/1000>1)
       {
        e=num%10;
        d=((num%100)-e)/10;
        c=((num%1000)-(d*10+e))/100;
        b=(num-(c*100+d*10+e))/1000;
        printf("have 4 numbers. it is %d%d%d%d%d.\n",c,d,e);
                printf("%d%d%d%d",e,d,c);
    }
    else if(num/100>1)
    {
           e=num%10;
           d=((num%100)-e)/10;
           c=(num-(d*10+e))/100;
           printf("have 3 numbers. it is %d%d%d%d%d.\n",c,d,e);
           printf("%d%d%d%d",e,d,c);
    }
    else if(num/10>1)
    {
           e=num%10;
           d=(num-e)/10;
           printf("have 2 numbers. it is %d%d%d%d%d.\n",d,e);
           printf("%d%d",e,d);
    }
            
               
        
        
    system("pause");
}
搜索更多相关主题的帖子: 数字 include 正整数 
2011-09-02 22:33
将是高手
Rank: 1
等 级:新手上路
帖 子:79
专家分:5
注 册:2011-6-18
收藏
得分:0 
回复 2楼 TonyDeng
哈哈,谢谢你的鼓励,可是我想问一下,我的这种方法是不是太麻烦了一点?你有什么更简便的方法吗?
2011-09-02 22:51
将是高手
Rank: 1
等 级:新手上路
帖 子:79
专家分:5
注 册:2011-6-18
收藏
得分:0 
回复 4楼 czsbc
temp=data;
    while(temp)
    {
        cnt++;
        temp/=10;
    }

请问这段是什么意思?
2011-09-03 11:25
将是高手
Rank: 1
等 级:新手上路
帖 子:79
专家分:5
注 册:2011-6-18
收藏
得分:0 
回复 7楼 funmain
可是这个循环不是无限的吗?因为temp不管怎样除10都不可能为0.那cnt不是无限自加1下去了?
2011-09-03 12:39
将是高手
Rank: 1
等 级:新手上路
帖 子:79
专家分:5
注 册:2011-6-18
收藏
得分:0 
回复 10楼 czsbc
对啊!!粗心了粗心了!谢谢!!
2011-09-03 14:06
将是高手
Rank: 1
等 级:新手上路
帖 子:79
专家分:5
注 册:2011-6-18
收藏
得分:0 
回复 12楼 hanxiaokun
是啊,对于这个问题用字符串来解决还简单。
2011-09-03 14:44
将是高手
Rank: 1
等 级:新手上路
帖 子:79
专家分:5
注 册:2011-6-18
收藏
得分:0 
经过一番探索,我用字符串做出来了,个人觉得还是比较简便的,哈哈,解决问题的感觉很好!谢谢大家的支持!
程序代码:
#include"stdio.h"
#include"stdlib.h"
int main()
{
    int a,c,e=0,n;
    char b[10];
    scanf("%d",&a);
    sprintf(b,"%d",a);
    n=strlen(b);
    printf("have %d numbers",n);
    for(c=n;c>=0;c--)
    {
        printf("%c",b[c]);
    }

    system("pause");
}

2011-09-05 08:12
将是高手
Rank: 1
等 级:新手上路
帖 子:79
专家分:5
注 册:2011-6-18
收藏
得分:0 
回复 16楼 编译中。。
你可以看你上一楼那一段啊,精简版的
2011-09-07 21:06
快速回复:这个代码有啥问题?弄了一晚上,脑袋有点抽筋。
数据加载中...
 
   



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

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