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

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-02
c语言编程:给一个不多于五位的正整数,用if-else语句求出它是几位数

可以参考下面的代码:
#include
void main()
{ int num; printf("请输入一个不大于5位数的正整数:");
scanf("%d",&num);
if(num>99999||num<1)
printf("您的输入有误!
");
else { if(num<10)
printf("您输入的是1位数!
");
else if(num<100)
printf("您输入的是2位数!
");
else if(num<1000)
printf("您输入的是3位数!
");
else if(num<10000) printf("您输入的是4位数!
");
else printf("您输入的是5位数!
"); } }

扩展资料:
if语句的一般形式如下:
if(表达式)语句1
[else语句2]
if语句中的“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式。其中最直观、最容易理解的是关系表达式。所谓关系表达式就是两个数值进行比较的式子
if 语句的执行流程:首先判断关键词 if 后括号内条件表达式的值,如果该表达式的值为逻辑真(非 0),则执行 if 体,接着执行 if 体后的其他语句;否则,若该表达式的值为逻辑假(0),则不执行该 if 体,直接执行 if 体后的其他语句。
参考资料来源:百度百科-if语句

C语言程序:
#include
int Digit(int n)
{
return n > 0 ? 1 + Digit(n/10) : 0;
}
void rprint(int n)
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSIC,作为C语言最初的标准。

思路是:①判断这个数是否小于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);
}

  • C语言编程:给一个不多于5位的正整数,
    答:不多于五位的正整数,包括一位数到五位数,所有的数值。即[1,99999].以下代码,功能为获取一个不多于五位的正整数并输出。int main(){ int n; srand(time(NULL)); printf("%d", rand()%99999+1);}
  • 编写程序:输入一个不多于五位数的正整数,要求:输出它的位数;顺序输出它...
    答:include<stdio.h>int main(){ int x,i,j,a[12]; printf("输入一个正整数:\n"); scanf("%d",&x); for(i=0;x;x/=10)a[i++]=x%10; printf("它是%d位数\n",i); for(j=i-1;j>=0;j--)printf("%d ",a[j]); printf("\n"); for(j=0;j...
  • C语言编程:给一个不多于5位的正整数,要求1求它是几位数2逆序打印出各位...
    答:else n=1;printf("\n这个数的位数=%d",n);f=a/10000;e=a%10000/1000;d=a%10000%1000/100;c=a%10000%1000%100/10;b=a%10000%1000%100%10;printf("\n万位为%d\n千位为%d\n百位为%d\n十位为%d\n个位为%d\n",f,e,d,c,b);switch(n){ case 5:printf("%d%d%d",f,e,d,c...
  • C语言编程:输入一个不超过5位的正整数,
    答:include<stdio.h> void main(){ int n,i,a[10];printf("请输入一个不超过5位的正整数:\n");scanf("%d",&n);int sum=0;for(i=0;;i++){ a[i]=n%10;/*取余存于a[i]中*/ n=n/10;sum++;/*位数加一*/ if(n==0) break;} printf("它是%d位数\n",sum);int j;printf...
  • C语言问题 输入一个不多于5位的正整数,要求如下结果
    答:if(f=='\n') printf("place=5");else {printf("Error!\n"); return;}}//位数超过5位后报错,并退出程序。else printf("place=4");} else printf("place=3");} else printf("place=2");} else printf("place=1");printf("\n%c %c %c %c %c",a,b,c,d,e);printf("\n...
  • c语言编程求一个不多于5位数的正整数之和,谢谢亲们帮忙。
    答:include <stdio.h> int main(){ int a,sum=0;printf("input a:");scanf("%d",&a);while( a ){ sum += a%10 ;a /= 10 ;} printf("%d's 各位之和为:%d\n", a , sum );return 0;}
  • c语言编程要求输入一个不大于五位的正整数,正序输出。c我们才学到循环...
    答:就是用循环做的。C语法我不太会,定义一个长度为5的int数组,用于保存每次输入的数字,使用循环语句,循环次数等于数组长度,将每次输入的数字存入数组中,循环执行完后对数组排序。大概是这样的。
  • ...一个不超过5位的整数,请编程打印出这个的各个位数。 c语言编程...
    答:include "stdio.h"#include "string.h"#include "stdlib.h"int main(void){ int n; char a[11],i; printf("Please enter an integer less than 100000...\n"); scanf("%d",&n); if(strlen(itoa(n,a,10))<6) for(i=0;a[i];printf("%c ",a[i++])); ...
  • c语言编程问题 输入一个不超过5位的数 输出其原数 反序数 是几位数
    答:void main(){ int num,rev,temp,num_de_bit; #include<stdio.h> scanf("%d",&num); num > 99999?99999:num; temp = num; num_de_bit = 0; rev = 0; if( !temp)//输入0的情况处理 { num_de_bit++; } while( temp) { rev = 10*rev +...
  • 正整数 5位 用c语言编程 谢谢
    答:include <iostream> include "stdlib.h"using namespace std;void main(){ char cBufBit[33];//int iInteger;double iInteger; //这样可以多输几位,:-),不过这样也就只能20位 int iBitNum = 0;int i,j;cout<<"请输入一个正整数:";cin>>iInteger;sprintf(cBufBit, "%0.0f", i...