题目链接
#include <stdio.h>
#include <string.h>
int main()
{
char str[1001];
gets(str);
int x, a[1001] = {0};
for (int i = 0; i < strlen(str); ++i)
x = str[i] - '0', a[x]++;
for (int j = 0; j <= 9; j++)
if (a[j] != 0)
{
printf("%d:%d", j, a[j]);
puts("");
}
return 0;
}
注:
① 换行表示:puts("");
② 第七行代码中,在定义数组a[]时,由于之后需要对a[]数组进行++操作而非赋值操作,所以需要初始化为0.
③本题中最重要的一点是第九行代码,由于题目要求对个位数的次数升序输出,所以想到用数组的下标来实现。同时可以了解到,数组中的元素不一定只能用来表示不同种的数,也可以用来表示不同数字出现的次数!