C语言程序设计——if-else-if多支路形式求五位数的位数并按逆序打印出各位数字(例4.9)

代码如下:

#include<stdio.h>
#include<stdlib.h>
main()
{
	long x;
	int wan,qian,shi,bai,ge;
	printf("请输入一个不多于5位的正整数:");
	scanf("%ld",&x);

	if(x>100000)
	{
		printf("\n抱歉,该数已超过五位数!");
		exit(1);
	}
	else if(x<0)
	{
		printf("\n抱歉,该数不是正整数!");
		exit(1);
	}
	else
	{
		wan=x/10000;
		qian=x%10000/1000;
		bai=x%1000/100;
		shi=x%100/10;
		ge=x%10;
	    if(wan!=0)
		    printf("该数有5为数,个位:%d,十位:%d,百位:%d,千位:%d,万位:%d\n",ge,shi,bai,qian,wan);
    	else if(qian!=0)
        	printf("该数有4为数,个位:%d,十位:%d,百位:%d,千位:%d\n",ge,shi,bai,qian);
    	else if(bai!=0)
	    	printf("该数有3为数,个位:%d,十位:%d,百位:%d\n",ge,shi,bai);
    	else if(shi!=0)
	    	printf("该数有2为数,个位:%d,十位:%d\n",ge,shi);
	    else if(ge!=0)
        	printf("该数有1为数,个位:%d\n",ge);
    	else
		printf("该数为0.\n");
	}
return 0;

运行结果如下:
在这里插入图片描述

分析:(1)逆序就是个十百千万的顺序输出。(2)不多于五位的正整数,不仅要考虑是不是五位数,还要考虑是不是正整数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值