練兵區——程式設計題——不計入總分 1
1
判斷一個整型資料有幾位v2.0(4分)
題目內容:
從鍵盤輸入一個整型資料(int型),編寫程式判斷該整數共有幾位,並輸出包含各個數字的個數。例如,從鍵盤輸入整數16644,該整數共有5位,其中有1個1,2個6,2個4。
程式執行結果示例1:
Please enter the number:
12226↙
12226: 5 bits
1: 1
2: 3
6: 1
程式執行結果示例2:
Please enter the number:
-12243↙
-12243: 5 bits
1: 1
2: 2
3: 1
4: 1
輸入格式: "%d"
輸出格式:
輸入提示資訊:"Please enter the number:\n"
判斷該整數共有幾位:"%d: %d bits\n"
包含數字0的個數:"0: %d\n"
包含數字1的個數:"1: %d\n"
包含數字2的個數:"2: %d\n"
包含數字3的個數:"3: %d\n"
包含數字4的個數:"4: %d\n"
包含數字5的個數:"5: %d\n"
包含數字6的個數:"6: %d\n"
包含數字7的個數:"7: %d\n"
包含數字8的個數:"8: %d\n"
包含數字9的個數:"9: %d\n"
為避免出現格式錯誤,請直接拷貝貼上題目中給的格式字串和提示資訊到你的程式中。
#include <stdio.h> #include <stdlib.h> int main() { int m,n,s,a,b,c,d,e,f,g,h,x,z,i=0,l; a=0; b=0; c=0; d=0; e=0; f=0; g=0; h=0; x=0; z=0; printf("Please enter the number:\n"); scanf("%d",&n); l=n; do { n=abs(n); switch(n%10) { case 0: a++; break; case 1: b++; break; case 2: c++; break; case 3: d++; break; case 4: e++; break; case 5: f++; break; case 6: g++; break; case 7: h++; break; case 8: x++; break; default : z++; } n=n/10; } while(n); m=abs(l); while (m) { i++; m/=10; }
printf("%d: %d bits\n",l,i); if(a) { printf("0: %d\n",a); } if(b) { printf("1: %d\n",b); } if(c) { printf("2: %d\n",c); } if(d) { printf("3: %d\n",d); } if(e) { printf("4: %d\n",e); } if(f) { printf("5: %d\n",f); } if(g) { printf("6: %d\n",g); } if(h) { printf("7: %d\n",h); } if(x) { printf("8: %d\n",x); } if(z) { printf("9: %d\n",z); } return 0; }