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

#include<stdio.h>main(){longintnum;intindiv,ten,hundred,thousand,ten_thousand,place;p... #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;
}
}
展开
 我来答
杨柳风83
推荐于2017-10-02 · 知道合伙人教育行家
杨柳风83
知道合伙人教育行家
采纳数:4976 获赞数:114084
2009年大学毕业,10年参加工作,在古浪县新堡初级中学教书

向TA提问 私信TA
展开全部
#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();
}
a909002881
推荐于2017-09-14 · TA获得超过2482个赞
知道小有建树答主
回答量:915
采纳率:0%
帮助的人:458万
展开全部
#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();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宿啥品8397
2015-04-08 · TA获得超过4530个赞
知道大有可为答主
回答量:3273
采纳率:60%
帮助的人:1810万
展开全部

#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式