c语言结构体:输入若干个整数,统计出现次数最多的那个整数。如果出现最多的整数有两个以上,打印最早输入的那个整数。 【输入形式】 从标准输入读取输入。第一行只有一个数字N(1≤N≤10000),代表整数的个数。以后的N行每行有一个整数。 【输出形式】 向标准输出打印出现次数最多的那个数字。
时间: 2024-02-15 17:03:13 浏览: 137
好的,这是一个统计整数出现次数的问题,我们可以使用一个结构体数组来记录每个整数出现的次数,然后遍历数组找出出现次数最多的整数。
以下是C语言的代码实现:
```c
#include <stdio.h>
#define MAX_N 10000
struct Node {
int value;
int count;
};
int main() {
int n, i, j, max_count = 0, max_value = 0;
struct Node nums[MAX_N];
scanf("%d", &n);
for (i = 0; i < n; i++) {
int value, found = 0;
scanf("%d", &value);
// 查找是否已经出现过该数字
for (j = 0; j < i; j++) {
if (nums[j].value == value) {
nums[j].count++;
found = 1;
break;
}
}
// 如果没出现过,添加新的结构体
if (!found) {
nums[i].value = value;
nums[i].count = 1;
}
}
// 遍历结构体数组找出出现次数最多的数字
for (i = 0; i < n; i++) {
if (nums[i].count > max_count) {
max_count = nums[i].count;
max_value = nums[i].value;
}
}
printf("%d\n", max_value);
return 0;
}
```
注:该代码中使用了一个结构体数组来记录每个整数出现的次数,结构体中包含了整数的值和出现的次数。在输入每个整数时,先查找该数字是否已经出现过,如果已经出现过,则将对应的计数器加1;如果没出现过,则添加一个新的结构体记录该数字的值和计数器初始化为1。最后遍历结构体数组找出出现次数最多的数字,如果有多个数字出现次数相同,则输出最早输入的那个数字。
阅读全文