输入一个不多于五位的整数,判断其位数并依次输出个位,十位,百位,千位,万位

由于未提供博客具体内容,无法生成包含关键信息的摘要。

 

以下几种同的C语言实现方法可以实现输入一个多于5位的正整数,逆序输出该数输出是几位数: ### 方法一:逐位判断法 ```c #include<stdio.h> int main(){ int a,b,c,d,e,n; printf("请输入一个多于5位数的正整数: "); scanf("%d",&n); a=n/10000; //万位 b=n%10000/1000; //千位 c=n%1000/100; //百位 d=n%100/10; //十位 e=n%10; //个位 if(a!=0) { printf("%d是5位数,逆序是:%d%d%d%d%d\n",n,e,d,c,b,a); } else if(b!=0) { printf("%d是4位数,逆序是:%d%d%d%d\n",n,e,d,c,b); } else if(c!=0) { printf("%d是3位数,逆序是:%d%d%d\n",n,e,d,c); } else if(d!=0) { printf("%d是2位数,逆序是:%d%d\n",n,e,d); } else { printf("%d是1位数,逆序是:%d\n",n,e); } return 0; } ``` 此方法通过对输入的数进行逐位判断,分别确定其万位千位百位十位个位,再根据每一位是否为零判断该数的位数逆序输出位数字[^1]。 ### 方法二:循环倒序法 ```c #include<stdio.h> int main() { long num, numt; int a = 0; printf("请输入一个多于5位的正整数: "); scanf("%ld", &num); int flag = 1; //判断是几位数 if (num >= 10000 && num < 100000) { printf("num是一个五位数\n"); } else if (num >= 1000 && num < 10000) { printf("num是一个位数\n"); } else if (num >= 100 && num < 1000) { printf("num是一个位数\n"); } else if (num >= 10 && num < 100) { printf("num是一个位数\n"); } else if (num >= 0 && num < 10) { printf("num是一个位数\n"); } else { flag = 0; } if (flag == 1) { //倒序计算 numt = num; while (num) { a = a * 10 + num % 10; num = num / 10; } printf("倒序是:%ld\n", a); } else { printf("输入错误!请输入0 - 100000的数字\n"); } return 0; } ``` 该方法先判断输入数的位数,再通过循环断取余和整除操作将数字倒序,最后输出倒序后的数字。若输入符合要求,会提示输入错误[^2]。 ### 方法三:数组存储法 ```c #include<stdio.h> int main() { int x, n = 10000, j = 0, i = 0; int arr[5] = {'0'};//定义数组以将键入的整数存入 printf("请输入一个多于5位的正整数: "); scanf("%d", &x); while (n > 0) { if (x / n < 10 && x / n > 0) { arr[i] = x / n; ++j; ++i; x -= n * (x / n); } n /= 10; } printf("逆序是:"); while (i > 0) { printf("%d", arr[i - 1]); i -= 1; } printf("\n位数是 %d\n", j); return 0; } ``` 此方法将输入的数按位存入数组,同时计算位数,最后逆序输出数组元素输出位数[^3]。 ### 方法四:通用位数计算法 ```c #include <stdio.h> int main() { int n; printf("请输入数:"); scanf("%d", &n); int m = n; if (n <= 0 || n > 99999) { printf("enter data error\n"); return 0; } //1. 获取位数 int count = 0; while (n != 0) { n /= 10; count = count + 1; } printf("位数是 %d\n", count); //2. 逆序输出 int a = 0; n = m; while (n) { a = a * 10 + n % 10; n = n / 10; } printf("逆序是: %d\n", a); return 0; } ``` 该方法先判断输入是否合法,再通过循环计算输入数的位数,最后再次使用循环将数字逆序输出[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Awesome╮(﹀_﹀)╭

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

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

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

打赏作者

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

抵扣说明:

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

余额充值