例如,Please enter the number:
-122443↙
-12243: 6 bits
1: 1
2: 2
3: 1
4: 2
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,a,b,c,d,e,f,g,h,i,j,counter=0,num;
a=0;
b=0;
c=0;
d=0;
e=0;
f=0;
g=0;
h=0;
i=0;
j=0;
printf("Please enter the number:\n");
scanf("%d",&n);
num=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:i++;break;
default :j++;
}
n=n/10;
}while(n);
counter=a+b+c+d+e+f+g+h+i+j;
printf("%d: %d bits\n",num,counter);
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(i){printf("8: %d\n",i);}
if(j){printf("9: %d\n",j);}
return 0;
}
#include <stdlib.h>
int main()
{
int n,a,b,c,d,e,f,g,h,i,j,counter=0,num;
a=0;
b=0;
c=0;
d=0;
e=0;
f=0;
g=0;
h=0;
i=0;
j=0;
printf("Please enter the number:\n");
scanf("%d",&n);
num=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:i++;break;
default :j++;
}
n=n/10;
}while(n);
counter=a+b+c+d+e+f+g+h+i+j;
printf("%d: %d bits\n",num,counter);
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(i){printf("8: %d\n",i);}
if(j){printf("9: %d\n",j);}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-09-28
#include<>
#include<>
int main()
{
char num[100];
int cnt[10] = {0};
int i;
scanf("%s", num);
printf("%s:%dbits\n", num, strlen(num));
for(i = 0; num[i]; i ++)
if(num[i] <= '9' && num[i] >= '0') cnt[num[i] - '0'] ++;
for(i = 0; i < 10; i ++)
if(cnt[i]) printf("%d:%d\n", i, cnt[i]);
}追问
#include<>
int main()
{
char num[100];
int cnt[10] = {0};
int i;
scanf("%s", num);
printf("%s:%dbits\n", num, strlen(num));
for(i = 0; num[i]; i ++)
if(num[i] <= '9' && num[i] >= '0') cnt[num[i] - '0'] ++;
for(i = 0; i < 10; i ++)
if(cnt[i]) printf("%d:%d\n", i, cnt[i]);
}追问
谢谢,还没学到数组,不用数组能实现吗
追答这个 不用数组很麻烦的
本回答被提问者和网友采纳第2个回答 2019-09-28
这个用数组的方式来实现比较好,包括后面的输出
#include <stdio.h>#include<stdlib.h>
main()
{
int N,n,b,i,c[]={1,2,3,4,5,6,7,8,9},d[9]={0};
int r=0;
printf("Please enter the number:\n");
scanf("%d",&n);
N=n;
n=abs(n);
while(n>0){
b=n%10;
for(i=0;i<9;i++){
if(b==c[i])
d[i]++;
}
n=n/10;
r++;
}
printf("%d: %d bits\n",N,r);
for(i=0;i<9;i++){
if(d[i]!=0)
printf("%d: %d\n",c[i],d[i]);
}
system("pause");
}