用c语言编写函数,该函数的功能是,将所有大于1小于整数m的非素数存入xx数组中, 非素数的个数通过k传回。整数m的值由主函数输入。
时间: 2023-06-27 21:04:18 浏览: 138
以下是用C语言编写函数的代码,实现将所有大于1小于整数m的非素数存入xx数组中, 非素数的个数通过k传回:
```c
#include <stdio.h>
int is_prime(int n) { // 判断一个数是否为素数
if (n <= 1) return 0;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return 0;
}
return 1;
}
void find_non_primes(int m, int xx[], int *k) { // 找出所有非素数
int cnt = 0;
for (int i = 2; i < m; i++) {
if (!is_prime(i)) { // 如果不是素数
xx[cnt++] = i; // 存入数组中
}
}
*k = cnt; // 将非素数的个数传回
}
int main() {
int m;
printf("请输入整数m:");
scanf("%d", &m);
int xx[m - 2], k; // 定义数组和非素数个数
find_non_primes(m, xx, &k); // 调用函数
printf("大于1小于%d的非素数有:", m);
for (int i = 0; i < k; i++) {
printf("%d ", xx[i]);
}
printf("\n共%d个非素数", k);
return 0;
}
```
在主函数中,先输入待处理的整数m,定义数组xx和非素数个数k,然后调用函数find_non_primes(m, xx, &k)来找出所有非素数。函数内部通过调用is_prime函数判断一个数是否为素数,如果不是素数则存入数组中,并且通过指针将非素数的个数传回。最后在主函数中输出结果。
阅读全文