c语言 给一个不多于5位的正整数 用C语言写出

要求1求出是几位数2分别输出每一位数字,3按逆序输出例如123是3位数,分别是1,2,3逆序是321!#include<stdio.h>voidmain(){longi,... 要求 1求出是几位数 2 分别输出每一位数字,3按逆序输出
例如 123 是3位数,分别是1,2,3 逆序是321!
#include <stdio.h>
void main()
{
long i,a,b,c,d,e;
scanf("%ld",&i);
if(1<=i&&i<10)
printf("1位数,%ld,%ld\n",i,i);
{
if(10<=i&&i<100)
{
a=i/10;
b=i%10;
printf("2位数,%ld,%ld,%ld%ld\n",a,b,b,a);
}
if(100<=i&&i<1000)
{
a=i/100;
b=i/10-i/100*10;
c=i%10;
printf("3位数,%ld,%ld,%ld,%ld%ld%ld\n",a,b,c,c,b,a);
}
if(1000<=i&&i<10000)
{
a=i/1000;
b=i/100-i/1000*10;
c=i/10-i/100*10;
d=i%10;
printf("4位数,%ld,%ld,%ld,%ld,%ld%ld%ld%ld\n",a,b,c,d,d,c,b,a);
}
if(10000<=i&&i<100000)
{
a=i/10000;
b=i/1000-i/10000*10;
c=i/100-i/1000*10;
d=i/10-i/100*10;
e=i%10;
printf("5位数,%ld,%ld,%ld,%ld,%ld,%ld%ld%ld%ld%ld\n",a,b,c,d,e,e,d,c,b,a);
}
}
}
请问我这样写可以么?还有什么更好的方式,不要用循环!我只学到5张内容!!
展开
 我来答
reatas
2018-05-09
知道答主
回答量:59
采纳率:0%
帮助的人:7.8万
展开全部
#include <stdio.h> 
int main()

int n=831,i=1;
int t,g,s,b,k,w;
t=n;
while(t>=10)
{
t=t/10;
i=i+1;
}
printf("n %d 有%d位\n",n,i);
g=n%10;
s=n/10%10;
b=n/100%10;
k=n/1000%10;
w=n/10000;
switch(i)
{
case 1: printf("%d",n); break;
case 2: printf("%d%d",g,s); break;
case 3: printf("%d%d%d",g,s,b); break;
case 4: printf("%d%d%d%d",g,s,b,k); break;
case 5: printf("%d%d%d%d%d",g,s,b,k,w); break;


return;
}

用了选择和循环结构 应该更好看一些

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莉1_
2013-03-19
知道答主
回答量:1
采纳率:0%
帮助的人:1526
展开全部
你这样写是对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沈苗公巧凡
2019-12-29 · TA获得超过3650个赞
知道大有可为答主
回答量:3066
采纳率:27%
帮助的人:387万
展开全部
1.语句if(num>9999)
x=5;是不对的,因为这样的话,你输入一个六位数依然满足条件,就把一个六位数当成五位数处理了,应该改为if(num>9999&&num<=99999)
x=5;
2.语句
a=num/10000;
b=(num-a*10000)/1000;
c=(num-a*10000-b*1000)/100;
d=(num-a*10000-b*1000-c*100)/10;
e=(num-a*10000-b*1000-c*100-d*10);
本身是没有问题的,但是你放的位置是有问题的,因为你事先输入的数的位数是一到五位都有可能,而这五条语句只适应于求解一个五位数,这样的话,不管你输入的是几位数都会按照求五位数各个位的方法求解,这显然是错误的,正确的做法是,把求位数的语句放到switch语句中,不同的位数对应着不同的求解方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式