永发信息网

输入一个不多于5位的正整数 1 求出它是几位数 2 分别输出每一位数 3 按逆顺序输出此数 输入123,输出321

答案:4  悬赏:0  手机版
解决时间 2021-01-03 09:09
书中的习题,完全没有思路,只学到选择结构,也就是只学到if语句和switch语句,不知这个要怎么设计算法,自学中,求高手
在线等,求思路
最佳答案
#include<stdio.h>
int main()
{
int n,count=0;
scanf("%d",&n);
while(n)
{
printf("%d",n%10);
n/=10;
count++;
}
printf("\n%d\n",count);
return 0;
}

最笨的方法
一位数就是区间[1,10)
两位数就是区间[10,100)
三位数......

但是只用分支结构是做不到逆序输出的(其实细想一下是可以的,但是非常麻烦,要把所有情况列举出来),必须要循环结构才行
全部回答
# include <stdio.h> void main() { int n; int i; int temp; int count=0; int a[10]; printf("输入一个不多于5位的正整数:\n"); scanf("%d",&n); temp=n; while(temp!=0) { a[count++]=temp%10; temp/=10; } printf("%d是%d位数...\n各位数分别是:",n,count); for(i=0;i<count;i++) { printf("%d ",a[i]); } printf("\n"); }
1. 方法代码如下: 输入一个不多于5位的正整数,要求:1 求它是几位数;2 分别输出每一位数字;3 按逆序输出各位数字。例如原数为321,应输出123。 #include<stdio.h> #include<math.h> void main() { long int num; int a,b,c,d,e,place; printf("please input a number(0--99999):%d\n",num); scanf("%ld",&num); if(num>=10000) place=5; else if(num>=1000) place=4; else if(num>=100) place=3; else if(num>=10) place=2; else place=1; printf("输入数的位数是:%d\n",place); printf("每位数字为:"); e=num/10000; d=(int)(num-e*10000)/1000; c=(int)(num-e*10000-d*1000)/100; b=(int)(num-e*10000-d*1000-c*100)/10; a=(int)(num-e*10000-d*1000-c*100-b*10); switch(place){ case 5:printf("%d,%d,%d,%d,%d",e,d,c,b,a); printf("\n反序数字为:"); printf("%d,%d,%d,%d,%d\n",a,b,c,d,e); break; case 4:printf("%d,%d,%d,%d",d,c,b,a); printf("\n反序数字为:"); printf("%d,%d,%d,%d\n",a,b,c,d); break; case 3:printf("%d,%d,%d",c,b,a); printf("\n反序数字为:"); printf("%d,%d,%d\n",a,b,c); break; case 2:printf("%d,%d",b,a); printf("\n反序数字为:"); printf("%d,%d\n",a,b); break; case 1:printf("%d",a); printf("\n反序数字为:"); printf("%d\n",a); break; } }
#include<stdio.h> void main() { long int a,b,c,d,e,x; printf("请输入任意一个正整数\n"); scanf("%ld",&x); a=x/10000; b=x%10000/1000; c=x%1000/100; d=x%100/10; e=x%10; if(a!=0) printf("这是一个五位数,逆向为:%ld\t%ld\t%ld\t%ld\t%ld\n",e,d,c,b,a); else if(b!=0) printf("这是一个四位数,逆向打印为:%ld\t%ld\t%ld\t%ld\n",e,d,c,b); else if(c!=0) printf("这是一个三位数,逆向打印为:%ld\t%ld\t%ld\n",e,d,c); else if(d!=0) printf("这是一个二位数,逆向打印为:%ld\t%ld\n",e,d); else if(e!=0) printf("这是一个一位数,逆向打印为:%ld\n",e); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单选题河流沉积物的沉积过程,正确的是A.颗粒
转账支票开给公司出纳作备用金?这样子操作出
爆兽猎人荼罗毒蝎的必杀技是叫什么名字
之所以相信星座是因为你现在内心已经很迷茫
初一下册数学103五题
下列不等式中总成立的是A.3-a>5-aB.a-3>a-1
为什么金鱼死了肚子会往上翻?
腐男和腐女是什么意思?
大风车互助理财平台怎么样
单选题某人平静时的胸围长度是85厘米,尽力吸
淘宝两心店铺怎么引流
请问从北京站到海淀区闵庄路香山清琴麓苑怎么
喜欢英文是什么
转弯的时候怎么看红绿灯
求0809赛季利物浦客场4比1曼联和0910赛季利物
推荐资讯
淮阳到漯河多长时间
水暖毯与电热毯哪个好
长颈鹿喜欢吃什么
柳州到桂林多少个小时
在网上买的艾条怎么样,怎么区分好坏呢?
上海地区的琴房价格
在枣庄东站能买滕州至西宁火车票吗
阅读理解Thissitecontains100originalshorts
单选题ThehighestawardwasgiventoAnna,
一位香港游客利用假期,乘火车来哈尔滨旅游,
制做松花蛋所用的配料主要有纯碱、食盐、生石
要表示各班人数占全校总人数的百分比,你应选
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?