用c语言编写函数fun(int m, int *k, int xx[]),将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。
时间: 2024-03-17 13:47:41 浏览: 112
C语言程序设计-编写函数fun,求任一整数m的n次方;.c
5星 · 资源好评率100%
下面是用C语言编写的函数fun(int m, int *k, int xx[])的代码实现:
```
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
// 判断一个数是否为素数
bool is_prime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
void fun(int m, int *k, int xx[]) {
*k = 0;
for (int i = 2; i < m; i++) {
if (!is_prime(i)) {
xx[*k] = i;
(*k)++;
}
}
}
int main() {
int m = 100;
int k, xx[100] = {0};
fun(m, &k, xx);
printf("The non-prime numbers between 2 and %d are:\n", m);
for (int i = 0; i < k; i++) {
printf("%d ", xx[i]);
}
printf("\n");
return 0;
}
```
在该函数中,我们首先定义了一个判断素数的函数is_prime,该函数返回一个布尔值,表示给定的整数是否为素数。然后在fun函数中,我们首先初始化非素数的个数为0,然后遍历从2到m-1的所有整数,如果该整数不是素数,则将其存入xx所指的数组中,并将非素数的个数增加1。最后,我们通过k指针返回非素数的个数。
在main函数中,我们调用fun函数,然后打印出所有大于1小于整数m的非素数。
阅读全文