#include
#include
#include
int DigitBit(char str[]);
void DigitCount(char a[]);
#define MAX 100
int DigitBit(char str[])
{
int count;
for(int i=0;str[i]!='\0';i++)
{
if(str[i]<='9' && str[i]>='0')
{
count++;
}
}
return count;
}
void DigitCount(char a[])
{
int digit[10]={0};
for(int i=0;a[i]!='\0';i++)
{
if(a[i]<='9' && a[i]>='0')
{
digit[a[i]-'0']++;
}
}
for(int j=0;j<10;j++)
{
if(digit[j]>0)
{
printf("%d: %d\n",j,digit[j]);
}
}
}
int main()
{
char a[MAX];
int sum;
printf("Input a number:");
scanf("%s",&a);
sum=DigitBit(a);
printf("%d bits\n",sum);
void DigitCount(a);
return 0;
}
运行时输入12223没有打印每个数字出现的字数
只打印了5 bits
main函数中对DigitCount函数的调用错了,你写的是函数声明,不是函数调用
return 0;上面的void DigitCount(a);中的void删掉。