编写函数fun(int m,int *k,int xx []),将小于整数m的非素数存入xx数组中,个数由k返回的C语言代码
时间: 2024-02-27 20:55:04 浏览: 122
C语言程序设计-编写函数fun,求任一整数m的n次方;.c
5星 · 资源好评率100%
以下是实现该函数的C语言代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int is_prime(int n) { // 判断n是否为素数的函数
if (n < 2) {
return 0;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
void fun(int m, int *k, int xx[]) {
int count = 0; // 记录非素数的个数
for (int i = 2; i < m; i++) {
if (!is_prime(i)) { // 如果i不是素数,则存入xx数组中
xx[count++] = i;
}
}
*k = count; // 将非素数的个数赋值给k指向的内存
}
int main() {
int m = 100;
int k;
int xx[100];
fun(m, &k, xx);
printf("非素数个数:%d\n", k);
printf("非素数列表:");
for (int i = 0; i < k; i++) {
printf("%d ", xx[i]);
}
printf("\n");
return 0;
}
```
首先定义了一个判断素数的函数 `is_prime`,然后在 `fun` 函数中遍历小于整数m的所有数,如果该数不是素数,则存入xx数组中,并同时计数。最后将计数的结果赋值给k指向的内存,以便返回非素数的个数。在main函数中,我们调用 `fun` 函数,并输出非素数的个数和非素数列表。
阅读全文