个位数统计 (15 分)
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
输出格式:
对 N 中每一种不同的个位数字,以 D:M
的格式在一行中输出该位数字 D
及其在 N 中出现的次数 M
。要求按 D
的升序输出。
输入样例:
100311
输出样例:
0:2
1:3
3:1
总结:这道题跟我们之前的统计数字有一些区别,这个是“1000位”,说明数据是比较大的,任何一个整型数据都是无法进行存储的,所以我借助了字符数组来实现。
代码实现:
#include<stdio.h>
#include<string.h>
int main()
{
int a[10] = { 0 };
int temp = 0, i = 0;
char s[1001] = {0};
scanf("%s", s);
int count = strlen(s);
for (i = 0;i < count;i++)
{
temp = s[i] - '0';//因为是字符,所以这里要转换成整型数据
a[temp]++;
}
for (i = 0;i < 10;i++)
{
if (a[i] == 0)
continue;
else
printf("%d:%d\n", i, a[i]);
}
return 0;
}