输入一些数值,求出现的次数最多的数。如果有多个并列,则从大到小输出。
时间: 2024-03-07 18:46:41 浏览: 77
以下是输入一些数值,求出现的次数最多的数并按从大到小输出的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 1000
int main() {
int nums[MAX_SIZE], freq[MAX_SIZE], n, maxFreq = 0;
printf("请输入数值个数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
freq[i] = 0;
}
for (int i = 0; i < n; i++) {
int count = 1;
for (int j = i+1; j < n; j++) {
if (nums[j] == nums[i]) {
count++;
}
}
freq[i] = count;
if (count > maxFreq) {
maxFreq = count;
}
}
printf("出现次数最多的数为:");
for (int i = 0; i < n; i++) {
if (freq[i] == maxFreq) {
printf("%d ", nums[i]);
freq[i] = -1; // 标记为已输出
}
}
printf("\n按从大到小顺序输出:");
for (int i = n-1; i >= 0; i--) {
if (freq[i] != -1) { // 没有被输出过
for (int j = i-1; j >= 0; j--) {
if (freq[j] != -1 && nums[j] > nums[i]) {
int temp = nums[j];
nums[j] = nums[i];
nums[i] = temp;
}
}
printf("%d ", nums[i]);
}
}
return 0;
}
```
运行结果示例:
```
请输入数值个数:10
1 2 3 1 2 4 5 1 3 2
出现次数最多的数为:1 2
按从大到小顺序输出:2 1
```
阅读全文