题目内容:
从键盘输入一个整型数据(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
#include
#include
int
main()
{
printf("Please enter the
number:\n");
int
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;
h=0;
i=0;
j=0;
k=0;
l=0;
m=0;
n=0;
o=0;
p=0;
q=0;
scanf("%d",&a);
d=fabs(a);
for(b=1;;b++){
c=pow(10,b);
if(d/c==0){
printf("%d: %d bits\n",a,b);break;
}
}
for(e=1;e<=b;e++){
f=d;
d=d/10;
switch(f){
case
0:h++;break;
case
1:i++;break;
case 2:
j++;break;
case 3:
k++;break;
case 4:
l++;break;
case
5:m++;break;
case 6:
n++;break;
case 7:
o++;break;
case 8:
p++;break;
case 9:
q++;break;
}
}
if(h>0)printf("0:
%d\n",h);
if(i>0)printf("1: %d\n",i);
if(j>0)printf("2: %d\n",j);
if(k>0)printf("3: %d\n",k);
if(l>0)printf("4: %d\n",l);
if(m>0)printf("5: %d\n",m);
if(n>0)printf("6: %d\n",n);
if(o>0)printf("7: %d\n",o);
if(p>0)printf("8: %d\n",p);
if(q>0)printf("9: %d\n",q);
}