2927:判断数字个数
总时间限制: 1000ms 内存限制: 65536kB
描述
判断一行字符串中的数字出现的个数。
输入
输入有多行,每行一个字符串,该字符串中可以包含&$#@任何符号以及空格。
输出
有多行。输出该字符串中每个出现过的数字,然后在冒号“:”后面输出该数字出现的次数。按数字大小,从小到大的顺序输出。一行输出一个数字及其出现次数。没有出现过的数字不输出。
样例输入
ldksfj857ld&%&^%00000
138****0055end
样例输出
0:5
5:1
7:1
8:1
0:2
1:1
3:1
5:2
8:1
来源
06级计算概论课
问题链接:Bailian2927 判断数字个数
问题简述:(略)
问题分析:
有关字符统计的简单题。
要用库函数来实现,程序中的讲究还是比较多的,需要注意。
增加一个使用函数fgets()实现的题解。函数gets()是不被推荐使用的。
程序说明:(略)
参考链接:(略)
题记:(略)
AC的C语言程序(使用函数fgets()版本)如下:
/* Bailian2927 判断数字个数 */
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define N 100 + 1
char s[N];
int cnt[10];
int main(void)
{
int i;
while (fgets(s, N, stdin)) {
memset(cnt, 0, sizeof(cnt));
for (i = 0; s[i] != '\n'; i++)
if (isdigit(s[i])) cnt[s[i] - '0']++;
for (i = 0; i <= 9; i++)
if (cnt[i]) printf("%d:%d\n", i, cnt[i]);
}
return 0;
}
AC的C语言程序如下:
/* Bailian2927 判断数字个数 */
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define N 100
char s[N];
int cnt[10];
int main(void)
{
int i;
while(gets(s)) {
memset(cnt, 0, sizeof(cnt));
for(i = 0; s[i]; i++)
if(isdigit(s[i]))
cnt[s[i] - '0']++;
for(i = 0; i <= 9; i++)
if(cnt[i])
printf("%d:%d\n", i, cnt[i]);
}
return 0;
}