编写函数,使用指针变量删除已知数组中不是质数的数,并输出新数组。c语言
时间: 2024-02-22 17:59:29 浏览: 87
好的,这是一个简单的 C 函数,它可以接受一个整数数组和它的大小作为参数,然后删除数组中所有不是质数的数,并输出新数组。这个函数使用了一个辅助函数 `isPrime` 来检查一个数是否为质数。
```C
#include <stdio.h>
int isPrime(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i <= n/2; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
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]);
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
deleteNonPrimes(arr, size);
printf("New array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个函数中,我们首先遍历整个数组并检查每个元素是否为质数。如果是质数,我们就将它复制到新数组中。最后,我们将新数组中剩余的位置填充为 0。
注意,这个函数会修改原始数组,如果不想修改原始数组,可以先复制一份再进行操作。
阅读全文