C语言编程 输入一个不多于九位的正整数,要求输出它是几位数

 我来答
百度网友6fa3859
推荐于2018-02-27 · TA获得超过3349个赞
知道小有建树答主
回答量:1148
采纳率:85%
帮助的人:427万
展开全部

此程序可通过以下步骤实现:

    1、输入一个正整数

    2、将整数转换为字符串(使用sprintf函数)

    3、求字符串的长度(strlen函数),即正整数的位数

代码如下:

#include <stdio.h>
#include <string.h>

int main()
{
long num;
char str[20];

scanf("%ld", &num);
sprintf(str, "%ld", num);
printf("%d", strlen(str));

return 0;
}

这样写主要是考虑到整数的前面可能有0,比如:00090,是两位数。如果确认没有前置0的话,可以简化过程,省去转换为字符串的过程,直接用gets得到字符串。

爆破er3
2013-10-28 · TA获得超过478个赞
知道答主
回答量:120
采纳率:0%
帮助的人:51.1万
展开全部
我不会C++不过我可以告诉你思路。先要求数字小于十亿大于零而且是正整数,然后让它减一亿看结果是否大于或等于零是则为九位数,否则让它减一千万看是否大于或等于零。。。。以此类推
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuqi19881003
推荐于2017-10-07 · TA获得超过101个赞
知道答主
回答量:51
采纳率:0%
帮助的人:35.8万
展开全部
#include <stdio.h>
void main()
{
int input=0,cnt=0,tmp=0;
printf("请输入不多于9位的正整数:\n");
scanf("%d",&input);
tmp = input;
while(tmp>0)
{
cnt++;
tmp = tmp/10;
}
printf("%d的位数是:%d\n",input,cnt);
}
已经验证,结果正确
更多追问追答
追问
我试了一下,貌似有问题,输出的位数和输入数字一样。。。。
追答

这是我的运行结果,没看出问题啊,你把你的结果也截个图放上来吧。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ljf10000
2013-10-28 · TA获得超过199个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:111万
展开全部
int number_len(unsigned int number)
{
char str[10];

sprintf(str, "%u", number);

return strlen(str);
}
更多追问追答
追问
不是吧,我就看得懂char 和number是啥。。。。其他的看不懂。。。
能用这样的方式来吗?:划定一位数…九位数的范围,再用if……else if ……else的语句来实现判断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式