首页 > 代码库 > 逆序数字
逆序数字
题目描述
给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
输入
一个不大于5位的数字
输出
三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数
样例输入
12345
样例输出
51 2 3 4 554321
提示
哈姆雷特:数字还是字符?这是一个问题!
来源
题解:
#include<stdio.h>
#include<math.h>
int
main()
{
int
num,indiv,ten,hundred,thousand,ten_thousand,place;
scanf
(
"%d"
,&num);
ten_thousand=num/10000;
thousand=(
int
)(num-ten_thousand*10000)/1000;
hundred=(
int
)(num-ten_thousand*10000-thousand*1000)/100;
ten=(
int
)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
indiv=(
int
)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);
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
(
"%d\n"
,place);
switch
(place)
{
case
5:
printf
(
"%d %d %d %d %d\n"
,ten_thousand,thousand,hundred,ten,indiv);
printf
(
"%d%d%d%d%d"
,indiv,ten,hundred,thousand,ten_thousand);
break
;
case
4:
printf
(
"%d %d %d %d\n"
,thousand,hundred,ten,indiv);
printf
(
"%d%d%d%d"
,indiv,ten,hundred,thousand);
break
;
case
3:
printf
(
"%d %d %d\n"
,hundred,ten,indiv);
printf
(
"%d%d%d"
,indiv,ten,hundred);
break
;
case
2:
printf
(
"%d %d\n"
,ten,indiv);
printf
(
"%d%d"
,indiv,ten);
break
;
case
1:
printf
(
"%d\n"
,indiv);
printf
(
"%d"
,indiv);
break
;
}
return
0;
}
或:
#include<stdio.h>
int
main() {
int
x,y[5],i,j;
scanf
(
"%d"
,&x);
for
(i=0;x!=0;i++) {
y[i]=x%10;
x=x/10;
}
printf
(
"%d\n"
,i);
for
(j=i-1;j>0;j--)
printf
(
"%d "
,y[j]);
printf
(
"%d"
,y[0]);
putchar
(
‘\n‘
);
for
(j=0;j<i;j++)
printf
(
"%d"
,y[j]);
putchar
(
‘\n‘
);
return
0;
}
逆序数字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。