输出数字位数
#include "stdio.h"
int main(int argc, char const *argv[])
{
int x;
int n =1;
scanf("%d",&x);
if ( x > 999)
{
n = 4;
}
else if (x > 99)
{
n = 3;
}
else if (x > 9)
{
n = 2;
}
printf("%d\n", n);
return 0;
}
如果把else if 改成 if,计算机会把关系当做步骤
else if (x > 99)
<pre name="code" class="objc"> if (x > 99)
若输入2345,这种程序会输出最后一个——2.
因为前提是输入4位以下正整数,可以简化判断。不需要判断上限
任意范围怎么办?
换方式
数数字
352 /10 -->35
35%10 -->5
35 / 10 -->3
3 % 10 -->3
#include "stdio.h"
int main(int argc, char const *argv[])
{
int x;
int n =0;
scanf("%d",&x);
n++;
x /=10;
if (x > 0)
{
n++;
x /= 10;
if (x > 0)
{
n++;
x /= 10;
if ...
}
printf("%d\n", n);
return 0;
}
1. ?见后一篇
n++;
应该是n = n+1
2.?见后一篇
x /= 10;
应该是x=x/10
介绍while循环
if (x > 0)
{
n++;
x /= 10;
if (x > 0)
{
n++;
x /= 10;
if ...
}
变成
while (x > 0)
{
n++;
x /= 10;
}
因为很大数位的数很占内存,所以不要用很大的数去算,以后会讲