11.27 求一批整数中出现最多的数字

发布于 2024-11-27  82 次阅读


求一批整数中出现最多的数字。输入一个正整数 n (1<n≤1000),再输入 n 个整数,分析每个整数的每一位数字,求出现次数最多的各位数字

例如输入 3 个整数 1234、2345、3456

其中出现次数最多的数字是 3 和 4,均出现了 3 次

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>

int f[10] = { 0 };

void sum(int* in, int n) {
	for (int i = 0; i < n; i++) {
		while (in[i] != 0) {
			int a = in[i] % 10;
			f[a]++;
			in[i] /= 10;
		}
	}
}

void pr(int n) {
	int max = f[0];
	for (int i = 1; i < 10; i++) {
		if (max < f[i]) {
			max = f[i];
		}
	}
	for (int i = 0; i < 10; i++) {
		if (f[i] == max) {
			printf("%d ",i);
		}
	}
}

int main() {
	int n;
	scanf("%d", &n);
	int* in = malloc(n * sizeof(int));
	for (int i = 0; i < n; i++) {
		scanf("%d", &in[i]);
	}
	sum(in, n);
	pr(n);
	free(in);
}

即便多个有f[i]同时为max,我分步进行操作,第一次只找出max,第二次才输出符合条件的 i,这样便满足了要求

届ける言葉を今は育ててる
最后更新于 2024-11-27