求教C语言,从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。

例如,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;
}

温馨提示:答案为网友推荐,仅供参考
第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]);
}

追问

谢谢,还没学到数组,不用数组能实现吗

追答

这个 不用数组很麻烦的

本回答被提问者和网友采纳
第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");
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网