编写程序查找数组中是否存在某个指定元素;将数组a和数组b中的素数不重不漏地合并到 一个vector容器c中,然后按照下标访问的方式手动对容器c中的数据,按从小到大顺序重新排序

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
int main() {
	int a[5] = { 19,67,24,11,17 }, b[5] = { 2,3,9,17,59 };

	//数组a为乱序数组,可以用顺序查找法查找
	for (int m = 0;m < sizeof(a) / sizeof(a[0]);++m) {
		if (a[m] == 17) {
			cout << "数组a中元素17所在的下标为" << m << endl;
			continue;
		}
		else
			continue;
	}

	//数组b为顺序数组,可以用折半查找法查找
	int left = 0, right = 4, mid;
	while (1)
	{
		mid = (left + right) / 2;
		if (b[mid] == 17)
		{
			cout << "数组b中元素17所在下标为" << mid << endl;
			break;
		}
		if (b[mid] < 17)
		{
			left = mid + 1;
		}
		else
		{
			right = mid - 1;
		}
	}
	vector<int>c;
	//判断数组a中素数并将其放进容器c中
	int p = 0;
	for (;p < sizeof(a) / sizeof(a[0]);++p) {
		for (int i = 2;i <= a[p];++i) {
			if (a[p] % i == 0) {
				break;
			}
			if (i = a[p]) {
				c.push_back(a[p]);
				break;
			}
			else
				continue;
		}
	}


	//同理 判断数组b中素数并尾插进容器c
	int q = 0;
	for (;q < sizeof(b) / sizeof(b[0]);++q) {
		int ii = 2;
		for (;ii <= b[q];++ii) {
			if (ii == b[q]) {
				c.push_back(b[q]);
				break;
			}
			if (b[q] % ii == 0 && b[q] != 2) {
				break;
			}
			else
				continue;
		}
	}
	//对容器c中数据进行排列(便于下一步使用unique函数)
	sort(c.begin(), c.end());
	//将c中重复数据放到c的尾部并删除
	c.erase(unique(c.begin(), c.end()), c.end());
	//输出排序好的容器c
	for (int z = 0;z < c.size();z++)
		cout << c[z] << "\t";
	return 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值