C语言编程 输入一个不多于九位的正整数,要求输出它是几位数
4个回答
展开全部
此程序可通过以下步骤实现:
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得到字符串。
展开全部
我不会C++不过我可以告诉你思路。先要求数字小于十亿大于零而且是正整数,然后让它减一亿看结果是否大于或等于零是则为九位数,否则让它减一千万看是否大于或等于零。。。。以此类推
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
已经验证,结果正确
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);
}
已经验证,结果正确
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int number_len(unsigned int number)
{
char str[10];
sprintf(str, "%u", number);
return strlen(str);
}
{
char str[10];
sprintf(str, "%u", number);
return strlen(str);
}
更多追问追答
追问
不是吧,我就看得懂char 和number是啥。。。。其他的看不懂。。。
能用这样的方式来吗?:划定一位数…九位数的范围,再用if……else if ……else的语句来实现判断。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询