编写函数,使用指针变量删除已知数组中不是质数的数,并输出新数组。
时间: 2024-02-22 15:59:28 浏览: 81
好的,这是一个简单的 C++ 函数,它可以接受一个整数数组和它的大小作为参数,然后删除数组中所有不是质数的数,并输出新数组。这个函数使用了一个辅助函数 `isPrime` 来检查一个数是否为质数。
```C++
#include <iostream>
bool isPrime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i <= n/2; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
void deleteNonPrimes(int* arr, int size) {
int j = 0;
for (int i = 0; i < size; i++) {
if (isPrime(arr[i])) {
arr[j++] = arr[i];
}
}
for (int i = j; i < size; i++) {
arr[i] = 0;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int size = sizeof(arr)/sizeof(arr[0]);
std::cout << "Original array: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
deleteNonPrimes(arr, size);
std::cout << "New array: ";
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个函数中,我们首先遍历整个数组并检查每个元素是否为质数。如果是质数,我们就将它复制到新数组中。最后,我们将新数组中剩余的位置填充为 0。
注意,这个函数会修改原始数组,如果不想修改原始数组,可以先复制一份再进行操作。
阅读全文