如果觉得可以的话,记得关注一下哦,有什么问题的话,记得下方留言
一,题目描述:
输入n个整数,输出出现次数大于等于数组长度一半的数。
输入描述:
每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。
输出描述:
输出出现次数大于等于n/2的数。
示例1
输入
3 9 3 2 5 6 7 3 2 3 3 3
输出
3
二,程序分析
- 创建变量,和一个变量数组vector。
- 将输入变量的数值插入到数组中,并且进行排序。
- 根据题意,多的数肯定比这个数组的一半长,那么输出这个位置下标的值,打印出来就得到结果了
三,分析结果的代码
#include<iostream>
//#include<string>
#include<vector>
#include <algorithm>
using namespace std;
int main()
{
//创建变量,和一个变量数组vector
int n;
vector<int> vi;
while (cin >> n)
//将输入变量的数值插入到数组中
vi.push_back(n);
//将这个数组进行排序
sort(vi.begin(), vi.end());
//多的数肯定比这个数组的一半长,那么输出这个下标的值,打印就好了
cout << vi[vi.size() / 2 - 1] << endl;
return 0;
}
四,运行结果: