level 6
这是一个求所输入的整正数的位数;看了老半天,就是不知道哪有问题。输入多少都是1,
求回答,谢谢了!
2012年08月02日 09点08分
1
level 6
# include<stdio.h>
int main()
{
int n=1,num;
printf("输入一个正整数:");
scanf("%d",&num);
if(num/10<1)
n=1;
else
for(n=1;num>=1&&num<10;n++)
{
num=num/10;
}
printf("位数:%d\n",n);
return 0;
}
2012年08月02日 09点08分
2
level 11
num>=1&&num<10; → num>10;
2012年08月02日 09点08分
4
错了,是 num>=10;
2012年08月02日 09点08分
回复 @别急还没硬 :对头,恍然大悟啊!握爪~
2012年08月02日 10点08分
level 9
else if(num>10)
{
for(n=1;;n++)
{
num=num/10;
if(num==0)break;
}
}
printf("位数:%d\n",n);
return 0;
else以后的代码修改如下。
2012年08月02日 09点08分
6
level 8
给出中间的循环部分,你好好的参考下
i=0;
while(t!=0)
{
i++;
t/=10;
}
最后输出i就是你要的结果了
2012年08月02日 10点08分
9
嗯,这个看懂了,谢谢了。这个道理一样是。
2012年08月02日 10点08分
回复 @老三挺2 :就是利用除法运算撒,小于10的数字除以10肯定是等于0了撒,自然就可以得出你要的结果了
2012年08月02日 10点08分
level 11
何必要这样了,可以利用printf函数的返回值,比如:
int i;
scanf("%d",&i);
int i_num = printf("%d",i);
printf("这个数字的个数是%d .\n",i_num);
2012年08月02日 10点08分
11