题目描述
给定一个k位整数N=dk-110k-1+……—+d1101+d0(0<=di<=9,i=0,……k-1,dk-1>0),请编写程序计算每种不同的个位数字出现的次数,例如,给定N=100311,则有2个0,3个1,和1个3。
输入格式
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
输出格式
对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。
样例
输入样例 1:
100311
输出样例 1:
0:2
1:3
3:1
代码
#include <stdio.h>
int main(){
int a[10]={0};
char tmp;
int i;
while((tmp=getchar())!= EOF){
switch(tmp){
case '0':
a[0]++;
break;
case '1':
a[1]++;
break;
case '2':
a[2]++;
break;
case '3':
a[3]++;
break;
case '4':
a[4]++;
break;
case '5':
a[5]++;
break;
case '6':
a[6]++;
break;
case '7':
a[7]++;
break;
case '8':
a[8]++;
break;
case '9':
a[9]++;
break;
default:
break;
}
}
for(i = 0; i< 10;i++){
if(a[i] > 0){
printf("%d:%d\n",i,a[i]);
}
}
return 0;
}