用c++语言解决这道题:题目描述 有一种疾病,它发作的时间可能和一个人具体的年龄有关。现给出n个病人发病时的年龄,如果统计中发现某一年龄出现的次数超过了一半,那我们就认为该疾病与该年龄是相关的,如果没有出现超过一半的年龄就说明该疾病与年龄无关。 输入 两行,第一行是一个整数n(0<n<1000) 第二行n个整数(年龄),用空格分隔,年龄大于0小于120. 输出 疾病与年龄相关,输出这个年龄。 如果不相关输出字母“n” 样例输入 3 3 2 2 样例输出 2
时间: 2024-04-09 14:28:34 浏览: 41
以下是使用C++语言解决该问题的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <unordered_map>
int main() {
int n;
std::cin >> n;
std::vector<int> ages(n);
for (int i = 0; i < n; ++i) {
std::cin >> ages[i];
}
std::unordered_map<int, int> count;
for (int age : ages) {
count[age]++;
}
for (const auto& pair : count) {
if (pair.second > n / 2) {
std::cout << pair.first << std::endl;
return 0;
}
}
std::cout << "n" << std::endl;
return 0;
}
```
输入样例为 "3" 和 "3 2 2",输出结果为 "2"。
注意,这只是一种可能的解决方案,实际实现可能会根据具体情况有所变化。
阅读全文