c语言编程:给一个不多于五位的正整数,用if-else语句求出它是几位数

如题所述

可以参考下面的代码:

#include <stdio.h> 

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("您输入的是3位数!\n"); 

else if(num<10000) printf("您输入的是4位数!\n"); 

else printf("您输入的是5位数!\n"); } }

扩展资料:

if语句的一般形式如下:

if(表达式)语句1

[else语句2]

if语句中的“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式。其中最直观、最容易理解的是关系表达式。所谓关系表达式就是两个数值进行比较的式子

if 语句的执行流程:首先判断关键词 if 后括号内条件表达式的值,如果该表达式的值为逻辑真(非 0),则执行 if 体,接着执行 if 体后的其他语句;否则,若该表达式的值为逻辑假(0),则不执行该 if 体,直接执行 if 体后的其他语句。

参考资料来源:百度百科-if语句

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-07-26
#include<stdio.h>
#include<stdlib.h>
main()
{
int n;
printf("Please input the number:\n");
scanf("%d",&n);
if(n/10==0)
printf("是1位数");
else if(n/10!=0){
n=n/10;
if(n/10==0)
printf("是2位数");
else if(n/10!=0){
n=n/10;
if(n/10==0)
printf("是3位数");
else if(n/10!=0){
n=n/10;
if(n/10==0)
printf("是四位数");
else if(n/10!=0){
n=n/10;
if(n/10==0)
printf("是五位数");
}
}
}
}
system("pause");
return 0;
}

用if-else太麻烦了。建议用循环来做本回答被提问者采纳
第2个回答  2009-07-23
#include<stdio.h>
int main()
{
int count;
printf("Please input a number:");
scanf("%ld",&count);
if(count>=10000&&count<=99999)
printf("这是个5位数!");
else if(count>=1000&&count<=9999)
printf("这是个4位数!");
else if(count>=100&&count<=999)
printf("这是个3位数!");
else if(count>=10&&count<=99)
printf("这是个2位数!");
else if(count>=0&&count<=9)
printf("这是个1位数!");
else
printf("不在范围内!");
return 0;
}
第3个回答  2009-07-23
#include <stdio.h>
int main()
{
int n;
printf("Please input a number (0<number<100000):");
scanf("%d", &n);
if(n<=0) printf("%d 不是正整数\n", n);
else if(n<10) printf("%d 是1位数\n", n);
else if(n<100) printf("%d 是2位数\n", n);
else if(n<1000) printf("%d 是3位数\n", n);
else if(n<10000) printf("%d 是4位数\n", n);
else if(n<100000) printf("%d 是5位数\n", n);
else printf("%d 多于5位数\n", n);
return 0;
}
第4个回答  2009-07-23
x/10循环累加。ok

c语言编程:给一个不多于五位的正整数,用if-else语句求出它是几位数
include <stdio.h> 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<10...

用C语言编程:给一个不多于5位的正整数,要求如下:
if (b < 0){ printf("a是五位数\\n");w = 5;}else if (c < 0){ printf("a是四位数\\n");w = 4;}else if (d < 0){ printf("a是三位数\\n");w = 3;}else if (e < 0){ printf("a是两位数\\n");w = 2;}else if (f < 0){ printf("a是个位数\\n");w = 1;...

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);...

给一个不多于5位的正整数,要求: 1、求出它是几位数; 2、分别输出每一位...
if(num>=10000)place=5;else if(num>=1000)place=4;else if(num>=100)place=3;else if(num>=10)place=2;else place=1;printf("输入数的位数是:%d\\n",place);printf("每位数字为:");e=num\/10000;d=(int)(num-e*10000)\/1000;c=(int)(num-e*10000-d*1000)\/100;b=(int)(num...

给一个不多于5位数的正整数,要求:(1)求出它是几位数;(2)分别输出每一...
i++){ b[i]=k%10;k\/=10;if(k==0)break;} if(i<4||i==4&&b[4]<10){ printf("%d位数,各位数字是:\n",i+1);for(j=i;j>=0;j--){ if(j!=i)printf(" ");printf("%d",a[j]);} } else printf("多于5位数\n");} else printf("不是正整数\n");} ...

实现从键盘输入一个不超过5位数的正整数,判断它是几位数的整数?
printf("请输入一个介于0-99999之间的整数:");scanf("%d",&n);\/\/方法一 if(n<10) printf("一位数");else if(n<100) printf("两位数");else if(n<1000) printf("三位数");else if(n<10000) printf("四位数");else printf("五位数");\/\/方法二 j=0;for(i=n;i!=0;i=i\/10...

C语言问题 输入一个不多于5位的正整数,要求如下结果
else if(e=='\\n') printf("place=4");被 \/\/*** 标记的行上if语句是没有else配合的,也就是说你的if语句在这里就已经结束,所以下一句if语句将要执行。因此当你输入的数字位数少于4位时,输出的结果是不对的。它不能正确的输出你输入的数字是几位数。你只要把if和else配对使用就可以避免这种...

给一个不多于5位的正整数 用C语言写出
应该没有关系吧,如果是三位数,就不会输出b了。我也是初学者。switch语句中每种case都要加花括号吧 case 1:{printf("%d,%d,%d,%d,%d",a,b,c,d,e);printf("\\n反序数字为:");printf("%d,%d,%d,%d,%d",e,d,c,b,a);break;} ...

给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位...
int i;int temp;int count=0;int a[10];printf("输入一个不多于5位的整数:\\n");scanf("%d",&n);temp=n;while(temp!=0){ a[count++]=temp%10;temp\/=10;} printf("%d是%d位数...\\n各位数分别是:",n,count);for(i=0;i<count;i++){ printf("%d ",a[i]);} printf("\\...

C语言问题
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供) 2.程序源代码: main( ) { long a,b,c,d,e,x; scanf("%ld",&x); a=x\/10000;\/*分解出万位*\/ b=x%10000\/1000;\/*...

相似回答