#include <iostream>
#include <vector>
#include <string>
#include<cmath>
using namespace std;
//定义的素数查找函数
bool isprime(int n) {
if (n <= 1) return false;//return 0;
int sqr = int(sqrt(n * 1.0));
for (int i = 2; i <= sqr; i++) {
if (n % i == 0)
return false;//return 0;
}
return true;//return 1;
}
int main() {
int a[5] = { 19,67,24,11,17 }, b[5] = { 2,3,9,17,59 };
vector<int>c;
for (int m = 0; m <= 4; m++) {
if (isprime(a[m]) == 1) {
c.push_back(a[m]);
}
}
cout << ends;
for (int g = 0; g <= 4; g++) {
if (isprime(b[g]) == 1) {
c.push_back(b[g]);
}
}
cout <<"这两个数组中共有素数个数为:"<< c.size() << endl;
const int e = c.size();
cout << "请输入一个你想寻找的数字" << endl;
int q;
cin >> q;
//顺序查找法
int w = 0;
for (; w <= e - 1; w++) {
if (q == a[w])
break;
}
cout << "用顺序查找法所在的数字的下标是:" << w << endl;
//二分查找法
int high = e, low = 0;
while (low > high) {
if (q == (low + high) / 2)
break;
else if (q > (low + high) / 2)
low = (low + high) / 2;
else high = (low + high) / 2;
}
cout << "用二分查找法所在的数字的下标是:" << w << endl;
int len = e;
//冒泡排序法
for (int l = 0; l < len - 1; l++) {
for (int i = 0; i < len - 1 - l; i++) {
if (c[i] > c[i + 1]) {
int a = 0;
a = c[i + 1];
c[i + 1] = c[i];
c[i] = a;
}
}
}
cout << c.size() << endl;
for (int m = 0; m < len; m++) {
cout << c[m] << "\t" << ends;
}
return 0;
}
//问题:怎么将冒泡排序法设成一个函数并能够引用这个函数将vector元素排序
这两个数组中共有素数个数为:8
请输入一个你想寻找的数字
17
用顺序查找法所在的数字的下标是:4
用二分查找法所在的数字的下标是:4
8
2 3 11 17 17 19 59 67
C:\Users\86178\source\repos\Project62\Debug\Project62.exe (进程 16336)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .
数组与函数的综合应用
最新推荐文章于 2021-02-19 10:35:46 发布