编写函数int fun (int lim, int aa[MAX] ),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。然后编写主函数调用它。代码并解释代码
时间: 2023-04-03 22:05:24 浏览: 197
关于正可逆算子的Lawson-Lim均值和Karcher均值
好的,我可以回答这个问题。这是一个关于编写函数的问题,函数名为fun,接受两个参数,一个是整数lim,另一个是整数数组aa。该函数的功能是找出小于lim的所有素数,并将它们存储在aa数组中。函数返回所找到的素数的个数。
下面是代码:
```c
#include <stdio.h>
#define MAX 100
int fun(int lim, int aa[MAX]) {
int i, j, count = 0;
for (i = 2; i < lim; i++) {
for (j = 2; j <= i; j++) {
if (i % j == 0) {
break;
}
}
if (j == i) {
aa[count++] = i;
}
}
return count;
}
int main() {
int aa[MAX], count, lim = 50, i;
count = fun(lim, aa);
printf("小于%d的素数有:\n", lim);
for (i = 0; i < count; i++) {
printf("%d ", aa[i]);
}
printf("\n");
return 0;
}
```
该程序中,我们首先定义了一个函数fun,它接受两个参数,一个是整数lim,另一个是整数数组aa。函数的返回值是所找到的素数的个数。
在函数中,我们使用了两个循环来找到小于lim的所有素数。外层循环从2开始,一直到lim-1。内层循环从2开始,一直到当前外层循环的值。如果当前外层循环的值能够被内层循环的值整除,那么就说明它不是素数,我们就可以退出内层循环。如果内层循环一直执行到外层循环的值,那么就说明它是素数,我们就将它存储在aa数组中,并将count加1。
在主函数中,我们定义了一个整数数组aa和一个整数lim,然后调用fun函数来找到小于lim的所有素数,并将它们存储在aa数组中。最后,我们输出aa数组中的所有素数。
希望我的回答能够帮到你!
阅读全文