5、輸入一個不超過5位的正整數,編程實現:求出它是幾位數,分別輸出每位數字。


 1 #include<stdio.h>
 2 #include<math.h>
 3 int flws(int);
 4 void main()
 5 {
 6     int n,j,k=0;
 7     printf("請輸入一個正整數:\n");
 8     scanf("%d",&n);
 9     j=n;
10     while(j!=0)  //取位
11     {
12         j/=10;
13         k++;
14     }
15     if(k<=5)
16         flws(n,k);
17     else
18         printf("這個數的位數大於5位。\n");
19 }
20 int flws(int n,int k) 
21 {
22     int b,fl,i=1;
23     while(k!=0)
24     {    
25         b=pow(10,k-1); //利用pow函數取n-1位的位權
26         fl=n/b;
27         n%=b;
28         printf("這個數的第%d位為%d\n",i,fl);
29         k--,i++;
30     }
31     return 0;
32 }



 1 //5、輸入一個不超過5位的正整數,編程實現:求出它是幾位數,分別輸出每位數字。
 2 #include<stdio.h>
 3 #include<math.h>
 4 void main()
 5 {
 6     int n,i,j,k,b,f;
 7     k=0;
 8     scanf("%d",&n);
 9     j=n;
10     while(j!=0)  //先取位數給k
11     {
12         k++;
13        j/=10;
14     }
15     f=pow(10,k-1);  //取最高位位權
16     printf("這個數有%d位\n",k);
17     if(k>5||n<=0) printf("該數不是小於5位的正整數\n");
18         else for(i=1;i<=k;i++) //從高到低取位
19         {
20             b=n/f; //取每一次最高位
21             n=n%f; //去掉最高位
22             f/=10;  //改變位權
23             printf("這個數的第%d位為%d\n",i,b);
24         }
25 
26 }

還有一個很笨比的方法:

 1 /*5、輸入一個不超過5位的正整數,
 2 編程實現:求出它是幾位數,
 3 分別輸出每位數字。*/
 4 #include<stdio.h>
 5 void main()
 6 {
 7     int n,j,i,k,count,f;
 8     k=0;
 9     scanf("%d",&n);
10     j=n;
11     while(j!=0)  //先取位數給k
12     {
13         k++;
14        j/=10;
15     }
16     printf("這個數有%d位\n",k);
17     if(k>5||n<=0) printf("該數不是小於5位的正整數\n");
18     else for(i=1;i<=k;i++) //從高到低取位
19     {
20         f=n;
21         for(count=i;count<=k;count++)
22         {
23                 j=f%10;
24                 f/=10;
25     
26         }
27         printf("這個數的第%d為%d\n",i,j);
28     }
29 
30 }

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM