这个怎么把负数的条件加上啊,各位老哥,新学C语言,搞不懂
题目描述
给一个不多于5位的正整数,求出它是几位数。 如果输入的是一个负数或者大于5位数的数,则给出提示信息“out!”
输入格式:
一个不大于5位的正整数
输出格式:
输出该数的位数
输入样例复制
123
输出样例复制
3
不判断除以10直到为0即可
你题目的解答代码如下:
#include <stdio.h>
int main()
{
int n, i = 0;
scanf("%d", &n);
if (n < 0)
{
printf("out!");
return 0;
}
do
{
n /= 10;
i++;
} while (n > 0);
if (i <= 5)
printf("%d", i);
else
printf("out!");
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
#include <stdio.h>
#include <math.h>
void main()
{
int cnt = 0,n;
scanf("%d",&n);
if(n < 0 || n >= 100000){
printf("out!");
}else{
while(n > 0){
cnt ++;
n /= 10;
}
}
printf("%d",cnt);
}
#include <stdio.h>
int main()
{
int x = 0, n = 0;
printf("请输入一个整数:");
scanf("%d", &x);
if(x<0)
{
printf("out!");
return 1;
}
for (n = 0; x > 0; n++)
{
x /= 10;
}
if(n>5)
printf("out!");
else
printf("该数位数是:%d", n);
return 0;
}
定义位数变量,对判断的数 循环 除以10,得到新的数位数+1,如果>0,继续循环,<=0 跳出循环,输出位数,假如是负数,或者大于5位数,先if判断完即可。
#include<stdio.h>
/*
* 输入格式:
一个不大于5位的正整数
输出格式:
输出该数的位数
输入样例复制
123
输出样例复制
3
*/
int main()
{
int n;
int i = 0;
scanf("%d",&n);
if (n<0)
{
printf("out!");
}
while (n>0)
{
i++;
n /= 10;
}
if (i>5)
{
printf("out!");
}
else
printf("%d",i);
return 0;
}