c语言实现请编写函数fun,其功能是: 将所有大于1小于整数m的非素数存入xx所指数组中, 非素数的个数通过k传回
时间: 2023-12-08 21:05:04 浏览: 121
C语言程序设计-编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1+13+15+17+…+1(2m+1)
5星 · 资源好评率100%
以下是一种可能的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int is_prime(int n) {
if (n <= 1) return 0;
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) return 0;
}
return 1;
}
void fun(int m, int *xx, int *k) {
int i, j;
*k = 0;
for (i = 2; i < m; i++) {
if (!is_prime(i)) {
xx[(*k)++] = i;
}
}
}
int main() {
int m = 20;
int xx[100];
int k;
fun(m, xx, &k);
int i;
for (i = 0; i < k; i++) {
printf("%d ", xx[i]);
}
printf("\n");
return 0;
}
```
首先定义一个辅助函数 `is_prime` 判断一个整数是否为素数。然后在主函数中调用 `fun` 函数,传入整数 m、数组 xx 和指向变量 k 的指针。在 `fun` 函数中,首先将 k 设为 0,然后遍历 2 到 m-1 的整数,如果该整数不是素数,则存入 xx 数组中,同时将 k 的值加 1。最后返回时,k 的值即为非素数的个数。在主函数中打印出 xx 数组中的所有元素,即为所有大于 1 小于 m 的非素数。
阅读全文