3.7.2 每日一题

3.7.2 每日一题

n个数中里输出出现次数大于等于n/2的数

例如:
输入:3 9 3 2 5 6 7 3 2 3 3 3
输出: 3
解题思路:遍历数组,设置tmp临时存储每个数字作比较,设置计数器统计每个数字出现的次数,因为输入中含有空格,因此每次循环+=2,设置mostcoust为n/4(n个数还有n-1个空格),找到后输出tmp-48(ASCAll码与数字差值为48)
代码实现:

#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include <iostream>

#include <string>
using namespace std;
void Find(string str)
{
	int count = 0;
	int mostcount = str.size() / 4;
	for (size_t i = 0; i < str.size(); i += 2)
	{
		int tmp = str[i];
		for (size_t i = 0; i < str.size(); i += 2)
		{
			if (tmp == str[i])
				count++;
		}
		if (count>=mostcount)
		{
			cout << tmp-48<<' ';
			break;
		}
		count = 0;
	}
	

}
int main()
{
	string str;
	getline(cin,str);
	Find(str);
	system("pause");
	return 0;

}

运行结果

在这里插入图片描述
参考答案
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lxb18821659801/article/details/88309935