例题:输入整数判断并输入有几位数
一题多种思路:
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
作者QQ4577105