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

   更新日期:2024.05.15
思路是:①判断这个数是否小于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

#include <stdio.h>
main(){
int a,i=1;
scanf("%d",&a);
while((a/=10)>0) i++; //代码核心
printf("a的位数为:%d",i);
}

这样是比较简洁的代码,利用率较高

封装成函数,直接调用即可。
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;
}

在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);
}

  • 13425452783 :用C语言编程:给出一个不多于5位的正整数,判断它是几位数
    益尚霞1625 :答:判断a是否等于1000、100、10。③判断a%1000是否大于0,如果是,则这个数是四位数,如果不是,判断a%100是否大于0,如果是,则这个数是三位数,判断a%10是否大于0,如果是,则这个数是两位数,如果以上情况都不是,就是一位数。
  • 13425452783 :C语言 给出一个不多于5位的正整数。1.输出它是几位数 2.输出每一位数 ...
    益尚霞1625 :答:void main(){ int x,a,b,c,d,e,n,j;printf("请输入一个不多于5位的正整数\n");scanf("%d",&x);a=x/10000;b=x/1000-a*10;c=x/100-a*100-b*10;d=x/10-a*1000-b*100-c*10;e=x-a*10000-b*1000-c*100-d*10;if(a!=0)n=5;else if(a==0 && b!=0)n=4;else...
  • 13425452783 :c语言编程:给一个不多于5位的正整数,要求(1)求出它是几位数(2)分别输 ...
    益尚霞1625 :答:include<stdio.h>void main(){ int n,i=0; int j=0; while(1) { printf("请输入一个小于5位数的整数:"); scanf("%d",&n); if(n>=10000) printf("输入错误,请重新输入:"); else break; } while(n) { i=i*10+n%10; n=n/10;...
  • 13425452783 :用C语言编程:给一个不多于5位的正整数,要求如下:
    益尚霞1625 :答:int a, b, c, d, e, f, w;printf("输入一个不多于五位的整数:");scanf("%d",&a);//第一问,求出它是几位数 b = 10000 - a;c = 1000 - a;d = 100 - a;e = 10 - a;f = 0 - a;while (a < 0 || a > 99999)printf("输入错误,请重新输入\n");if (b < 0...
  • 13425452783 :c语言 给一个不多于5位的正整数 用C语言写出
    益尚霞1625 :答: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);...
  • 13425452783 :c语言编程:给一个不多于五位的正整数,用if-else语句求出它是几位数
    益尚霞1625 :答:void main(){ int num; printf("请输入一个不大于5位数的正整数:");scanf("%d",&num);if(num>99999||num<1)printf("您的输入有误!\n");else { if(num<10)printf("您输入的是1位数!\n");else if(num<100)printf("您输入的是2位数!\n");else if(num<1000)printf("您输入的...
  • 13425452783 :C语言: 给一个不多于5为的正整数 要求:1.求出它是几位数 2.分别打印...
    益尚霞1625 :答:2.分别打印出每一位数字 include <stdio.h> int main(){ int n,m;printf("请输入一个正整数:");scanf("%d",&n);if(n<=0){ printf("输入错误!\n");} else { m=10000;while(m>0){ if((n/m)!=0){ printf("%d ",n/m%10);} m=m/10;} } return 0;} 3.按逆序...
  • 13425452783 :c语言题目:给出一个不多于5位的正整数,要求:1、求出它是几位数2、分 ...
    益尚霞1625 :答: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++...
  • 13425452783 :用C语言编程:给一个不多于5位的正整数,要求循环嵌套实现?
    益尚霞1625 :答:用一个单纯的循环就可以实现这样的功能了。下面是实现的程序源代码。include<studio.h> int main(){int x,x1,x2=0,n=0;scanf(“%d”,&x);for(x1=x;x;x/=10){x2=x2*10+x%10;n++;} printf(“%d是一个%d位数,反过来是%d\n",x1,n,x2);return 0;} ...
  • 13425452783 :给出一个不多于5位的正整数,要求: 求出他是几位数 分别打印每一位数字...
    益尚霞1625 :答:numTmp /= 10; } digitCnt = i; printf ("%d位数\n", digitCnt); printf ("各位数字(逆序):"); for (i=0; i<digitCnt; i++) printf ("%d", digit[i]); putchar ('\n'); getch (); /*屏幕暂留*/ return 0;} ...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网