| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9749 人关注过本帖
标题:输入一个5位数,输出各位数是什么(求解)
只看楼主 加入收藏
小耳元
Rank: 1
来 自:云南
等 级:新手上路
帖 子:72
专家分:6
注 册:2010-4-17
结帖率:75%
收藏
已结贴  问题点数:5 回复次数:7 
输入一个5位数,输出各位数是什么(求解)
输入一个5位数!
  要求!
   输出:它是几位数!
   输出:各位数是什么(正序输出)从高到低!如输入1234,输出,1,2,3,4!
   输出:(逆向输出),从低到高!如输入1234,输出4321
      #include "stdio.h"
main()
{
  int x,a,b,c,d,e,y;
  printf("please:");
  scanf("%d\n",&x);
   if(x>0&&x<10)
    {
     y=1;
     printf("ta shi %d wei shu\n",y);
     printf("zhen xu shu chu %d\n",x);
     printf("nin xu shu chu %d\n",x);
      }
   if(x>9&&x<100)
    {
     y=2;
     a=x/10;
     b=x%10;
     printf("ta shi di %d wei shu\n",y);
     printf("zhen xu shu chu: %d,%d\n",a,b);
     printf("nin xu shu chu:%d%d\n",b,a);
      }
   if(x>99&&x<1000)
    {
      y=3;
      a=x/100;
      b=x/10%10;
      c=x%10;
      printf("ta shi di %d wei shu\n",y);
      printf("zhen xu shu chu: %d,%d,%d\n",a,b,c);
      printf("nin xu shu chu:%d%d%d\n",c,b,a);
      }
   if(x>999&&x<10000)
    {
      y=4;
      a=x/1000;
      b=x/100%10;
      c=x/10%10;
      d=x%10;
      printf("ta shi di %d wei shu\n",y);
      printf("zhen xu shu chu: %d,%d,%d,%d\n",a,b,c,d);
      printf("nin xu shu chu:%d%d%d%d\n",d,c,b,a);
       }
   if(x>9999&&x<100000)
    {
      y=5;
      a=x/10000;
      b=x/1000%10;
      c=x/100%10;
      d=x/10%10;
      e=x%10;
      printf("ta shi di %d wei shu\n",y);
      printf("zhen xu shu chu: %d,%d,%d,%d,%d\n",a,b,c,d,e);
      printf("nin xu shu chu:%d%d\n",e,d,c,b,a);
       }
       getch();
        }

                      1.为什么输入的时候要输入二次才会显示结果?
           2.为什么输入一个5位数的时候就不会显示结果?不管我是用int 还是用long都一样~~~~
                            本人是菜鸟,希望详细点,   谢谢~```````````      
   
      


 
搜索更多相关主题的帖子: 位数 求解 输出 输入 
2010-05-18 21:16
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:1 
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
    int number;
    char str_number[5];
    printf("请输入一个五位数:");
    scanf("%d",&number);
    itoa(number,str_number,10);
    {
        int i;
        for(i=0;i<5;i++)
        {
            putchar(str_number[i]);
            printf(",");
        }
    }
    printf("\n");
    strrev(str_number);
    puts(str_number);
    return 0;
}

愿用余生致力编程
2010-05-18 21:31
初初学者
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2010-5-9
收藏
得分:1 
#include <stdio.h>
int main()
{
    int n,num=0,x;
    scanf("%d",&n);
     while(n>0&&n<100000)
    {
       x=n%10;
       n=n/10;
       printf("%d ",x);
       num++;
    }
    printf("\n%d\n",num);
    return 0;
}
2010-05-18 21:33
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:1 
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
    int number;
    char str_number[256];
    printf("请输入一个数:");
    scanf("%d",&number);
    itoa(number,str_number,10);
    {
        int i,ilong=strlen(str_number);
        switch(ilong)
        {
        case 1:
            {
                printf("该数是一位数!\n");
               }
            break;
        case 2:
            {
                printf("该数数两位数!\n");
            }
            break;
        case 3:
            {
                printf("该数是三位数!\n");   
             }
            break;
        case 4:
            {
                printf("该数是四位数!\n");
            }
            break;
        case 5:
            {
                printf("该数是五位数!\n");
            }
            break;
        default:
            break;
        }
        for(i=0;i<ilong;i++)
        {
            putchar(str_number[i]);
            printf(",");
        }
    }
    printf("\n");
    strrev(str_number);
    puts(str_number);
    return 0;
}
我的这个程序能够处理一位至五位数,我把这个数当做字符串来处理,希望楼主看一下!

愿用余生致力编程
2010-05-18 21:40
desolatecity
Rank: 1
等 级:新手上路
帖 子:4
专家分:6
注 册:2009-9-24
收藏
得分:1 
#include <stdio.h>

int main(int argc, char *argv[])
{
    int nbr = 0;

    while(nbr < 9999 || nbr > 100000){
        scanf("%d",&nbr);
    }

    //printf("10^5--> %d \n10^4--> %d \n10^3--> %d \n10^2--> %d \n10^1--> %d \n",nbr/10000,(nbr%10000)/1000,(nbr%1000)/100,(nbr%100)/10,(nbr%10));

    //输出正序
    int step = 0;
    int n = 100000;
    while(step<5){
        printf("%d ,",(nbr%n)/(n/10));
        n = n / 10;
        step++;
    }

    printf("\n");

    //输出反序
    step = 0;
    n = 10;
    while(step<5){
        printf("%d ,",(nbr%n)/(n/10));
        n = n * 10;
        step++;
    }
    return 0;
}
2010-05-18 22:42
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
收藏
得分:1 
#include<stdio.h>
main()
{
    int a,b,c,n=0,d;
    scanf("%d",&a);
    c=a;
    printf("逆向输出:");
    for(;c>0;)
    {
        b=c%10;
        c=c/10;
        printf("%d ",b);
        n++;
    }
    printf("总共是%d位\n",n);
    printf("正序输出:");
    for(b=1,c=1;b<n;b++)
        c=10*c;
    for(b=0,d=0;a>0;)
    {
        b=a/c-d*b;
        a=a-b*c;
        d=d*10;
        c=c/10;
        printf("%d ",b);
    }
}



没有位数限制(但是不要超过int类型的上限)!!LZ看看吧

[ 本帖最后由 kinwyb 于 2010-5-19 22:46 编辑 ]

学习c语言痛苦!!但是要坚持~~
2010-05-19 22:45
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:0 
给一个简单的算法,你可以吧输入的数值看做字符串来处理,这样简单了许多啊 !!
#include "stdio.h"
#include<string.h>
main()
{
    char a[20];
    int j,k,m;
    scanf("%s",a);
    j=strlen(a);
    printf("数字是%u位!\n",j);
    printf("正序为:");
    for(k=0;k<(int)j;k++)
        printf("%c,",a[k]);
        printf("\n逆序为:");
    for(m=0;m<(int)j;m++)
        printf("%c,",a[j-m-1]);
   
}

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-21 20:08
小鲸鱼
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-6-3
收藏
得分:0 
回复 3楼 初初学者
如果还要反着输出各位数字呢?
2016-06-03 18:40
快速回复:输入一个5位数,输出各位数是什么(求解)
数据加载中...
 
   



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

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