用C语言编程:给出一个不多于5位的正整数,判断它是几位数

如题所述

思路是:①判断这个数是否小于10000并且大于0(检查输入的正确性)②假设输入数字是a,判断a是否等于1000、100、10。③判断a%1000是否大于0,如果是,则这个数是四位数,如果不是,判断a%100是否大于0,如果是,则这个数是三位数,判断a%10是否大于0,如果是,则这个数是两位数,如果以上情况都不是,就是一位数。

注释:a%1000的结果表示a除以1000后的余数(小学数学里的除法余数概念),如果大于0,说明有余数,说明a至少大于1000.如果等于0,说明a小于或等于1000
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-03-04
#include <stdio.h>
main(){
int a,i=1;
scanf("%d",&a);
while((a/=10)>0) i++; //代码核心
printf("a的位数为:%d",i);
}

这样是比较简洁的代码,利用率较高
第2个回答  2015-12-14
封装成函数,直接调用即可。
int f(int n)
{
if(n>100000) return -1;
else if(n>=10000) return 5;
else if(n>=1000) return 4;
else if(n>=100) return 3;
else if(n>=10) return 2;
else if(n>=1) return 1;
else return 0;
}
第3个回答  2007-10-29
在TC2.0环境中:
#include<stdio.h>
main()
{
int a,n=1;
scanf("%d",&a);
while(1)
{
a=a/10;
n++;
if(a<10)break;
}
printf("n=%d“,n);
}本回答被网友采纳

用C语言编程:给出一个不多于5位的正整数,判断它是几位数
判断a是否等于1000、100、10。③判断a%1000是否大于0,如果是,则这个数是四位数,如果不是,判断a%100是否大于0,如果是,则这个数是三位数,判断a%10是否大于0,如果是,则这个数是两位数,如果以上情况都不是,就是一位数。

C语言编程:给一个不多于5位的正整数,要求1求它是几位数2逆序打印出各位...
long int a;int n,b,c,d,e,f;printf("\\n请输入一个整数(0~99999):");scanf("%d",&a);if(a>9999)n=5;else if(a>999)n=4;else if(a>99)n=3;else if(a>9)n=2;else n=1;printf("\\n这个数的位数=%d",n);f=a\/10000;e=a%10000\/1000;d=a%10000%1000\/100;c=a%1000...

c语言编程:给一个不多于五位的正整数,用if-else语句求出它是几位数
else printf("您输入的是5位数!\\n"); } }

c语言给一个不多于5位数的正整数,求出他是几位数,分别输出每一位数字...
&n); if (n>9999) p=5; else if(n>999) p=4; else if(n>99) p=3; else if(n>9) p=2; else p=1; printf("位数:%d\\n",p); a=n\/10000; b=(int)(n-a*10000)\/

c语言编程:给一个不多于5位的正整数,要求(1)求出它是几位数(2)分别输 ...
include <stdio.h>\/\/无误及时采纳回答 int main(){int n;int count=0,i,a[5];printf ("输入一个不多于5位正整数(0~99999):\\n");scanf("%d",&n);if (n<=0 || n>=100000){printf ("输入的数不合法\\n");}else{while(1){a[count]=n%10;n=n\/10;if(n==0){break;}count...

C语言:输入一个不多于5位的正整数,求它是几位数。要求:将判断一个数...
include<stdio.h>#define N 5int main(){ int len(int x); int i,x; for(i=0;i<N;i++){ scanf("%d",&x); printf("The length of %d is %d\\n",x,len(x)); } return 0;}int len(int x){ int ans=0; while(x){ ans++; x\/=10; ...

输入一个不多于5位的正整数,求出它是个几位数,C语言设计
120 120是3位数。23 23是2位数。2234565 2234565是7位数。q Press any key to continue \/ include <stdio.h>int main() {unsigned num,digits,t;while(scanf("%u",&num) == 1) {digits = 0;t = num;if(t == 0) digits = 1;else {while(t) {t \/= 10;++digits;}}printf("%u...

c语言题目:给出一个不多于5位的正整数,要求:1、求出它是几位数2、分 ...
include<stdio.H>int main(){ unsigned int x=1, i=0; unsigned char c[5]={0}; while(1) { printf("输入正整数x(不超过5位):"); scanf("%u",&x); if(x\/100000) { printf("超过范围!\\n"); continue; } i=0; do { c[i++...

c语言 给一个不多于5位的正整数 用C语言写出
{ int a,b,c,d;int count = 1;printf("请输入一个不多于5位的正整数:");scanf("%d",&a);c = a;printf("逆序:\\n");while(c \/ 10 != 0){ count++;b = c % 10;printf("%d\\n",b);c = c \/ 10;} b = c % 10;printf("%d\\n",b);printf("位数是:%d\\n",count...

C语言编程:给一个不多于5位的正整数,要求编程实现(1)求它是几位数?(2...
long int a;int n,b,c,d,e,f;printf("\\n请输入一个整数(0~99999):");scanf("%d",&a);if(a>9999)n=5;else if(a>999)n=4;else if(a>99)n=3;else if(a>9)n=2;else n=1;printf("\\n这个数的位数=%d",n);f=a\/10000;e=a%10000\/1000;d=a%10000%1000\/100;c=a%...

相似回答