Chinaunix首页 | 论坛 | 博客
  • 博客访问: 126301
  • 博文数量: 52
  • 博客积分: 2200
  • 博客等级: 大尉
  • 技术积分: 580
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-08 15:00
文章分类

全部博文(52)

文章存档

2011年(1)

2009年(51)

我的朋友

分类: C/C++

2009-10-08 16:09:33

/*--------------------------------------村长学习c之路-dev c++--------------------------*/
/*-----------输入一个不超过5位的整数,求这个整数的位数,并将其反置-------------*/
#include
#include
int main()
{
    unsigned int x;
    int num=0;
    int x10000,x1000,x100,x10,x1;//定义万位、千位、百位、十位、个位数
    printf("请输入一个不超过5为的正整数\n");
    scanf("%u",&x);
    int temp=x;//保存输入的整数
    if((x10000=(int)(x/10000))!=0)//这一段的处理办法有点笨
    {
        num++;
        x=x-x10000*10000;
        }
        if((x1000=(int)(x/1000))!=0)
    {
        num++;
        x=x-x1000*1000;
        }
         if((x100=(int)(x/100))!=0)
    {
        num++;
        x=x-x100*100;
        }
         if((x10=(int)(x/10))!=0)
    {
        num++;
        x=x-x10*10;
        }
         if((x1=(int)(x/1))!=0)
    {
        num++;
        x=x-x1*1;
        }
        printf("%d的万位是:%d\n,千位是:%d\n,百位是:%d\n,十位是:%d\n,个位是 :%d\n",temp,x10000,x1000,x100,x10,x1);
        printf("%d的位数为:%d\n",temp,num);
        switch(num)//这一段的处理办法也有点笨,以后一起改进
        {
        case 5:
             x=x1*10000+x10*1000+x100*100+x1000*10+x10000;
             break;
        case 4:
             x=x1*1000+x10*100+x100*10+x1000;
             break;
         case 3:
             x=x1*100+x10*10+x100;
             break;
         case 2:
             x=x1*10+x10;
             break;  
         case 1:
             x=x1;
             break;
             default :printf("错误\n");
             }
         printf("原来输入的数是:%d\n,经过倒置的数是:%d",temp,x);
        system("PAUSE");
        return 0;
        }
阅读(309) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~