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


一题多种思路:

 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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM