C语言统计数字重复次数?

Input: 18887
Output:

1 occurs 1 times
7 occurs 1 times
8 occurs 3 times

Input:883822
Output:

2 occurs 2 times
3 occurs 1 times
8 occurs 3 times

已解决:

  • 统计数字的位数

  • 给定的数字中字符出现次数统计

疑问:

  • 当数字由输入者自定义位数时,该怎么统计字符出现次数?
    提示思路即可,无须代码

阅读 8k
2 个回答

itoa + switch
array

int array[10] = { 0 }

提取每一位的数字

array[index] += 1

如果不限制输入的位数,可以当做字符输入,一个 while 读入

#include <stdio.h>

int main(int argc, char *argv[]) {
    int nums[10] = {0};
    char ch;

    while ((ch = getchar()) != '\n') {
        if (ch >= 48 && ch <= 57) {
            nums[ch - '0']++;
        }
    }

    for (int i = 0; i < 10; ++i) {
        printf("%d occurs %d times \n", i, nums[i]);
    }
    return 0;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进