#include <cstdio>
int main()
{
int Digitalnum[10] = {0};
int n;
scanf("%d",&n);
if(n<0)
n = -n;
do{
Digitalnum[n%10]++;
n = n/10;
}while(n!=0);
for(int i=0;i<10;i++)
{
if(Digitalnum[i] != 0)
{
printf("%d:%d\n",i,Digitalnum[i]);
}
}
return 0;
}
上面代码只能得到11分,被扣掉4分,后来检查发现这个是不超过1000位的正整数,已经完全超过了int的范围,因此考虑用字符串。