C语言-5月10日 给一个不多于5位的正整数,要求:求出他是几位数,按照顺序输出各位数字,按照逆序输出各位数字。

//输入一个不多于五位的正整数,求出他是几位数,并输出各位数;
#include<stdio.h>
int main()
{
    int num;
    printf("请输入一个不多于五位的正整数:\n");
    scanf("%d",&num);
    if(num < -1 || num > 99999){
        printf("输入不合法,请重新输入。\n");//第一步:判断输入的数字是不是一个不多于五位的正整数且是不是正整数。
        return 0;
    }
    if(num >= 9999 && num <= 99999){//如果这个数字大于等于9999且小于99999他就是五位数
        printf("输入的数字位数为5\n");
    }
    else if(num >= 999 && num <= 9999){//如果这个数字大于等于999且小于9999他就是四位数
        printf("输入的数字位数为4\n");
    }
    else if(num >= 99 && num <= 999){//如果这个数字大于等于99且小于999他就是三位数
        printf("输入的数字位数为3\n");
    }
    else if(num >= 9 && num <= 99){//如果这个数字大于等于9且小于99他就是两位数
        printf("输入的数字位数为2\n");
    }
    else{
        printf("输入的数字位数为1\n");//上述条件全部不满足,则为一位数
    }
    if(num / 10000 >= 0){
        printf("%d\n",num / 10000);//输入的5位数除以10000得万位数字,并将其输出。
    }
    if(num % 10000 >= 1000){
        printf("%d\n",(num % 10000) / 1000);//输入的五位数字对10000取余得其余的四位数,将其余的四位数除以1000得千位数字,并将其输出。
    }
    if(num % 1000 >= 100){
        printf("%d\n",(num % 1000) / 100);//剩下的四位数字对1000取余得其余的三位数,将其余的三位数除以100得百位数字,并将其输出。
    }
    if(num % 100 >= 10){
        printf("%d\n",(num % 100) / 10);//剩下的三位数字对100取余得其余的两位数,将其余的两位数除以10得十位数字,并将其输出。
    }
    if(num % 10 >= 0){
        printf("%d\n",(num % 10));//将剩下的两位数字对10取余得其余的一位数字,并将其输出。
    }
    //————————————————————————————————————————————————————————————————————————————————————————————
    //这里开始逆序执行27行至41行代码,即可将输入的<=5位的正整数的各位数字逆序输出。
    if(num % 10 >= 0){
        printf("%d\n",(num % 10));
    }
    if(num % 100 >= 10){
        printf("%d\n",(num % 100) / 10);
    }
    if(num % 1000 >= 100){
        printf("%d\n",(num % 1000) / 100);
    }
    if(num % 10000 >= 1000){
        printf("%d\n",(num % 10000) / 1000);
    }
    if(num / 10000 >= 0){
        printf("%d\n",num / 10000);
    }//逆序执行完成。
    return 0;
}

如图所示,我输入正整数12345:

输出完成

如图,显示输入的数字位数为5,且将我输入的正整数按照顺序和逆序依次输出了出来。 

#include<stdio.h>
void Reverse(int n)
{
	if (n > 0)
	{
		printf("%d ", n % 10);
		Reverse(n / 10);
	}
}
int main()
{
	int t = 0;
	int n = 0;
	printf("请输入一个整数:");
	scanf("%d", &n);
	Reverse(n);
	return 0;
}

如图我输入123,输出结果为:


​​​​​​​输出完成

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ritchie_Zeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值