输⼊⼀个正整数,计算这个整数是几位数

简介: 输⼊⼀个正整数,计算这个整数是几位数

问题介绍

例如: 输⼊:1234  输出:4

          输⼊:12      输出:2

特别说明

之所以将这个问题单独拿出来讲,是因为解决思路的特殊之处,因为0的特殊存在,即使是0也要输出一位数。所以,解决这个问题使用我们平时不太常用的do while循环解决会更好一些

关于循环的知识点讲解,请看这篇http://t.csdnimg.cn/wHzqc

思路分析

1.创建一个变量a存储输入的值,并创建一个临时变量temp拷贝输入的值,对备份进行操作,防止破坏原来的值

2.创建一个变量count存储数字的个数

3.使用一个do while循环,进入循环之后先让count++,因为只要输入了值,就至少有一位数. 再让

  temp的值整除10赋给它本身(这相当于将这个数去掉了一位)当操作之前该值语句的值已 经 只有一位数时,整除10之后就变为0,这时再进行while的条件判断,就不再成立。这时得到的count的值就是我们要求得的位数

代码实现——do while循环

int main()
{
  int a = 0;
  int count = 0;
  scanf("%d", &a);
  int temp = a;//用临时拷贝的值进行操作,防止破坏原来的值
  
  do
  {
    count++;
    temp = temp / 10;
  } while (temp);
  
  printf("%d是%d位数\n", a, count);
  return 0;
}

代码实现——while循环

当然,这个代码并不是用其他循环就不能实现,使用while循环时,需要多加一个if判断语句,为了应付输入的值是0的这种情况

int main()
{
  int a = 0;
  int count = 0;
  scanf("%d", &a);
  int temp = a;
  if (temp == 0)  //与do while循环相比,这里多了一个if语句
    temp++;     //保证即使输入0的时候while循环也能执行一次
 
  while (temp)
  {
    count++;
    temp = temp / 10;
  }
  printf("%d是%d位数\n", a, count);
  return 0;
}

 

目录
打赏
0
3
3
0
17
分享
相关文章
|
9月前
C练习实例14 - 将一个正整数分解质因数
C练习实例14 - 将一个正整数分解质因数。
102 0
|
9月前
|
如何判断一个数是质数? 要求:编写一个Python函数,输入一个整数,输出该整数是否为质数。质数是指大于1的自然数中,除了1和它本身以外不再有其他因数的数。
如何判断一个数是质数? 要求:编写一个Python函数,输入一个整数,输出该整数是否为质数。质数是指大于1的自然数中,除了1和它本身以外不再有其他因数的数。
425 1
|
4月前
两个整数相加
【10月更文挑战第12天】两个整数相加
41 5
|
5月前
将一个正整数分解质因数
将一个正整数分解质因数。
89 8
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
269 2
|
9月前
55.输入两个正整数m和n,求其最大公约数和最小公倍数
55.输入两个正整数m和n,求其最大公约数和最小公倍数
60 0
|
9月前
25.输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值
25.输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值
66 0
求一个数是几位数并输出逆序数
求一个数是几位数并输出逆序数
90 0
编程从键盘输入一个正整数n,判断该数的奇偶性,若为奇数输出“odd”,若为偶数输出“even”
编程从键盘输入一个正整数n,判断该数的奇偶性,若为奇数输出“odd”,若为偶数输出“even”