、下列给定程序中函数fun的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun函数。 例如,若high的值为100,则函数的值为732
时间: 2023-06-25 20:02:11 浏览: 144
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;
}
int cmp(const void *a, const void *b) { // 快速排序比较函数
return *(int *)b - *(int *)a;
}
int fun(int high) {
int prime[10];
int i, j;
int sum = 0;
for (i = 1, j = 0; i <= high && j < 10; i++) {
if (is_prime(i)) {
prime[j] = i;
j++;
}
}
qsort(prime, 10, sizeof(int), cmp); // 对素数进行降序排序
for (i = 0; i < 10; i++) {
sum += prime[i];
}
return sum;
}
int main() {
int high = 100;
printf("%d", fun(high));
return 0;
}
```
程序中定义了一个 is_prime 函数,用于判断一个数是否是素数。在 fun 函数中,程序首先找出 high 以内的前 10 个素数,然后对这 10 个素数进行降序排序,最后计算并返回前 10 个素数的和。在主函数中,程序将 high 设置为 100,并输出 fun 函数的返回值,即最大的 10 个素数之和,为 732。
阅读全文