用c语言编程:输入一些数值,求出现的次数最多的数。如果有多个并列,则从大到小输出。
时间: 2024-03-07 12:47:00 浏览: 80
好的,以下是用 C 语言编写的解决方案:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
int main() {
int nums[MAX_SIZE], count[MAX_SIZE], n, max_count = 0;
printf("请输入数字个数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第%d个数字:", i + 1);
scanf("%d", &nums[i]);
count[i] = 0; // 初始化计数器
}
// 统计每个数字出现的次数
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (nums[i] == nums[j]) {
count[i]++;
}
}
}
// 找到出现次数最多的数字
for (int i = 0; i < n; i++) {
if (count[i] > max_count) {
max_count = count[i];
}
}
// 输出出现次数最多的数字,按从大到小的顺序输出
for (int i = max_count; i > 0; i--) {
for (int j = 0; j < n; j++) {
if (count[j] == i) {
printf("%d ", nums[j]);
}
}
}
printf("\n");
return 0;
}
```
首先,我们定义了一个 `MAX_SIZE` 常量来限制数组的大小。
然后,我们要求用户输入数字个数,以及每个数字。我们使用两个数组 `nums` 和 `count` 分别存储用户输入的数字和每个数字出现的次数。
接下来,我们使用两个嵌套循环来统计每个数字出现的次数。外层循环遍历每个数字,内层循环遍历整个数组,如果找到了相同的数字,就将计数器加一。
然后,我们再使用一个循环来找到出现次数最多的数字。我们将每个数字出现的次数与 `max_count` 比较,如果大于 `max_count`,就更新 `max_count` 的值。
最后,我们按照从大到小的顺序输出出现次数最多的数字。我们使用两个嵌套循环,外层循环遍历每个出现次数,内层循环遍历整个数组,如果找到了出现次数为当前次数的数字,就输出它。
希望这个解决方案能够帮到你!
阅读全文