编写一段程序,读取一个正整数,显示其位数。
※注意:代码清单中while语句的循环次数和no的位数一致。
请输入一个正整数:1963
1963的位数是4。
输入样例:
-3
1963
输出样例:
请输入一个正整数:请不要输入非正整数。
请输入一个正整数:1963的位数是4。
#include<stdio.h>
void Input(int *p)
{
printf("请输入一个正整数:");
scanf("%d",p);
}
void weishu(int *p,int *c)
{
int t;
t=*p;
while(t)
{
t/=10;
(*c)++;
}
}
int trueNumber(int a)
{
if(a>0)
return 1;
else
{
printf("请不要输入非正整数。\n");
return 0;
}
}
void Output(int *p, int *c)
{
printf("%d的位数是%d。\n",*p,*c);
}
int main(void)
{
int a;
int c=0;
do
{
Input(&a);
}while(!trueNumber(a));
weishu(&a,&c);
Output(&a,&c);
return 0;
}