给定一个不多于5位的正整数,要求:① 求它是几位数;② 分别打印出每一位数字;③ 按逆序打印出各位数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给定一个不多于5位的正整数,要求:① 求它是几位数;② 分别打印出每一位数字;③ 按逆序打印出各位数相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
main()
long int num;
int indiv,ten,hundred,thousand,ten_thousand,place;
printf("请输入一个整数(0~99999):");
scanf("%ld",&num);
if (num>9999) place=5;
else if(num>999) place=4;
else if(num>99) place=3;
else if(num>9) place=2;
else place=1;
printf("place =%d\n", place);
ten_thousand=num/10000;
thousand=num/1000%10;
hundred=num/100%10; /*求高手具体解析下这个位置,要是num=89830是怎样的解析思路*/
ten=num%100/10;
indiv=num%10;
switch(place)
case 5: printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);
printf("\n反序数字为;");
printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4: printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("\n反序数字为:");
printf("%d%d%d%d\n",indiv,ten,hundred,thousand);
break;
case 3: printf("%d,%d,%d",hundred,ten,indiv);
printf("\n反序数字为:");
printf("%d%d%d\n",indiv,ten,hundred);
break;
case 2: printf("%d,%d",ten,indiv);
printf("\n反序数字为:");
printf("%d%d\n",indiv,ten);
break;
case 1: printf("%d",indiv);
printf("\n反序数字为:");
printf("%d\n",indiv);
break;

#include <stdio.h>
main()

long m,a,b,c,d,e;
printf("请输入一个整数:(0~99999):\\n");
scanf("%ld",&m);
e=m%10;
d=m/10%10;
c=m/100%10;
b=m/1000%10;
a=m/10000%10;
if(m>=10000&&m<=99999)

printf("你输入的是5位数.\\n");
printf("%ld %ld %ld %ld %ld.\\n",a,b,c,d,e);
printf("逆序输出:%ld.\\n",e*10000+d*1000+c*100+b*10+a);

else if(m>=1000)

printf("你输入的是4位数.\\n");
printf("%ld %ld %ld %ld.\\n",b,c,d,e);
printf("逆序输出:%ld.\\n",e*1000+d*100+c*10+b);

else if(m>=100)

printf("你输入的是3位数.\\n");
printf("%ld %ld %ld.\\n",c,d,e);
printf("逆序输出:%ld.\\n",e*100+d*10+c);

else if(m>=10)

printf("你输入的是2位数.\\n");
printf("%ld %ld.\\n",d,e);
printf("逆序输出:%ld.\\n",e*10+d);

else if(m>=0)

printf("你输入的是1位数.\\n");
printf("%ld\\n",e);
printf("逆序输出:%ld.\\n",e);

getch();
参考技术A #include <stdio.h>
main()

long m,a,b,c,d,e;
printf("请输入一个整数:(0~99999):\n");
scanf("%ld",&m);
e=m%10;
d=m/10%10;
c=m/100%10;
b=m/1000%10;
a=m/10000%10;
if(m>=10000&&m<=99999)

printf("你输入的是5位数.\n");
printf("%ld %ld %ld %ld %ld.\n",a,b,c,d,e);
printf("逆序输出:%ld.\n",e*10000+d*1000+c*100+b*10+a);

else if(m>=1000)

printf("你输入的是4位数.\n");
printf("%ld %ld %ld %ld.\n",b,c,d,e);
printf("逆序输出:%ld.\n",e*1000+d*100+c*10+b);

else if(m>=100)

printf("你输入的是3位数.\n");
printf("%ld %ld %ld.\n",c,d,e);
printf("逆序输出:%ld.\n",e*100+d*10+c);

else if(m>=10)

printf("你输入的是2位数.\n");
printf("%ld %ld.\n",d,e);
printf("逆序输出:%ld.\n",e*10+d);

else if(m>=0)

printf("你输入的是1位数.\n");
printf("%ld\n",e);
printf("逆序输出:%ld.\n",e);

getch();
本回答被提问者采纳
参考技术B

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()

    char a[99];
    gets(a);
    int i=strlen(a);
    char *p=a;
    printf("%d位数\\n",i);
    while(*p)
    
        printf("%c",*p);
        *p++;
    
    return 0;

给出一个不多于5位的整数,要求 1求出它是几位数 2分别输出每一位数字 3按逆序输出各位数字,例如原数为321,应输出123

题目描述
给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
输入
一个不大于5位的数字
输出
三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数
样例输入
12345
样例输出
5
1 2 3 4 5
54321
程序:
#include<stdio.h>
#include<math.h>
int main()
{
    int a,c,d,count=0,t;
    scanf("%d",&a);
    d=c=a;
    while(c!=0)
    {
        count++;
        t=c%10;
        c=c/10;
    }
    printf("%d\n",count);
    while(a!=0)
    {
        t=a/(int)pow(10,(count-1));
        printf("%d",t);   
        a=a%(int)pow(10,(count-1));    
        if(a%10!=0)        //判断是否是最后 一位数字,若是,则后无空格
          printf(" ");     
        else
          printf("");
        count--;
    }
    printf("\n");
    while(d!=0){
        t=d%10;
        printf("%d",t);
        d=d/10;
    }
    printf("\n");
    return 0;
 }

以上是关于给定一个不多于5位的正整数,要求:① 求它是几位数;② 分别打印出每一位数字;③ 按逆序打印出各位数的主要内容,如果未能解决你的问题,请参考以下文章

2.给一个不多于5位的正整数,要求: ①求出它是几位数; ②分别输出每一位数字 ③按逆序输出各位数字。

编写程序,输入一个不多于5位的正整数,要求:(1)输出它是几位数; (2)分别输出每一位数字?

给一个不多于5位的正整数,要求:一求它是几位数,二逆序打印出各位数字。

输入一个不多于5位的正整数,要求:一求它是几位数,二逆序打印出各位数字。

给出一个不多于5位的正整数

JAVA常见算法题(二十三)