例題:輸入整數判斷並輸入有幾位數


一題多種思路:

 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