(2)程序设计定义时初始化一整型一维数组int a[10]={....................}, ①查找数组中是否有素数,如有将素数输出; ②设计插入排序算法,将一个数插入至已排序的设计思路,实现按升序的数组排序。c++
时间: 2024-10-21 08:17:46 浏览: 38
(2)在 C++ 中,你可以首先定义并初始化一个包含一些默认值的整型一维数组 `int a[10]`。然后,你可以通过遍历数组来判断每个元素是否为素数,如果找到素数就打印出来。接下来,我们将实现插入排序算法用于对数组进行升序排列。
```cpp
#include <iostream>
#include <cmath> // 包含 sqrt 函数,用于计算平方根
// 判断一个数是否为素数
bool isPrime(int num) {
if (num <= 1) return false;
if (num == 2 || num == 3) return true;
if (num % 2 == 0 || num % 3 == 0) return false;
int sqrt_num = static_cast<int>(sqrt(num));
for (int i = 5; i <= sqrt_num; i += 6) {
if (num % i == 0 || num % (i + 2) == 0)
return false;
}
return true;
}
// 插入排序算法
void insertionSort(int arr[], int n) {
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) { // 从左到右比较
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
int main() {
int a[10] = {4, 7, 1, 9, 2, 13, 5, 8, 11, 6}; // 初始化一个示例数组
std::cout << "原始数组:\n";
for (int i : a) {
std::cout << i << " ";
}
// 查找并打印素数
for (int i = 0; i < 10; ++i) {
if (isPrime(a[i])) {
std::cout << "素数: " << a[i] << "\n";
}
}
std::cout << "\n排序后的数组 (插入排序):\n";
insertionSort(a, 10);
for (int i : a) {
std::cout << i << " ";
}
return 0;
}
```
在这个程序中,我们首先定义了一个一维数组 `a` 并初始化了几个示例数字。接着,我们遍历数组检查素数并将其输出,最后使用插入排序算法对数组进行排序。执行后,你会看到原始数组以及经过排序后的数组。
阅读全文