例题:输入整数判断并输入有几位数

一题多种思路:

 1 //题目:输入一串数字,判断有几位数并输出
 2 // ------------------------分 隔 符---------------------------
 3 # include<stdio.h>
 4 # include<math.h>
 5 int main(){
 6 //-----------------对数思路----------------
 7 int i,o;  //i是你待会从键盘邀输入的变量
 8 printf("本程序将为你判断你输入的整数是几位数,请输入一串数字:\n");
 9 scanf("%d",&i);
10 if(i==0)
11 printf("该整数位数有1位\n");
12 else{
13 o=log10(i*10); //可以换成o=ceil(log10(i+1));
14 printf("对数:该整数位数有%d位\n",o);}
15 
16 //-----------------循环思路----------------
17 o=1; //最低也是一位数
18 while(i/=10)  //即直到算到0/10=0的时候就结束.
19 {
20 ++o;  //++o表达式的值作为循环体,不是o的值循环
21 }
22 printf("循环:该整数位数有%d位",o);
23 return 0;
24 }

Q:循环哪里怎么理解?

A:int o=1;   

      while(i/=10){     

      ++o;

       }

      printf("位数是%d",o);
-----------------备忘录----------------
i=i/10
i=1/10  //当i等于4时
0…1 ++o=2; o=1
i=0/10
0 不符合循环条件 执行printf语句o=1

i=i/10
i=10/10
1…0 ++o=2; o=1;
i=1/10
0…1 ++o=3; o=2;
i=0/10
0 不符合循环条件 执行printf语句o=2

i=i/10
i=999/10  //当i等于999时
99…9 ++o=2;o=1;
i=99/10
9…9 ++o=3;o=2;
i=9/10
0…9 ++o=4; o=3
i=0/10
0 不符合循环条件 执行printf语句o=3

posted @ 2021-11-08 10:42  iZJ"Qq4577105  阅读(264)  评论(0编辑  收藏  举报