1.编写一个主函数以及四个函数max(a, n)、min(a, n)、aver(a, n)和prime(m)。要求是: (1)函数max(a, n)、min(a, n)和aver(a, n)分别求出含有n个元素的数组a中的最大值、最小值和平均值,并返回结果到主调函数。 (2)在主函数中输入10个[3,9999]之间的素数存放到数组中,要求通过调用函数prime对输入的数进行正确性限制,如果不符合要求,则返回0,否则返回1,保证输入10个[3,9999]之间的素数——(输入的符合要求的素数未到十个时要求重新输入);然后分别调用max、min和aver函数,并输出返回的最大值、最小值和平均值。用c语言,直接给出完整代码,不要多余解释
时间: 2023-01-28 12:45:11 浏览: 94
编制具有如下原型的函数prime,用来判断整数n是否为素数:bool prime(int n); 而后编制主函数,任意输入一个大于4的偶数d,找出满足d=d1+d2的所有数对,其中要求d1与d2均为素数(通过调用prime来判断素数)。如偶数18可以分解为11+7以及13+5;而偶数80可以分解为:43+37、61+19、67+13、73+7。
4星 · 用户满意度95%
以下是用 C 语言编写的代码:
```
#include <stdio.h>
#include <stdlib.h>
int prime(int m);
int max(int a[], int n);
int min(int a[], int n);
float aver(int a[], int n);
int main(void)
{
int a[10];
int i, n, m;
// 输入 10 个[3,9999]之间的素数
for (i = 0; i < 10; i++)
{
printf("请输入一个3-9999之间的素数: ");
scanf("%d", &m);
n = prime(m);
if (n == 1)
a[i] = m;
else
{
printf("输入的不是素数,请重新输入\n");
i--;
}
}
// 调用 max、min 和 aver 函数,并输出结果
printf("最大值: %d\n", max(a, 10));
printf("最小值: %d\n", min(a, 10));
printf("平均值: %.2f\n", aver(a, 10));
return 0;
}
// 函数 prime: 判断 m 是否为素数
int prime(int m)
{
int i;
if (m < 3 || m > 9999)
return 0;
for (i = 2; i < m; i++)
{
if (m % i == 0)
return 0;
}
return 1;
}
// 函数 max: 求出含有 n 个元素的数组 a 中的最大值
int max(int a[], int n)
{
int i, max;
max = a[0];
for (i = 1; i < n; i++)
{
if (a[i] > max)
max = a[i];
}
return max;
}
// 函数 min: 求出含有 n 个元素的数组 a 中的最小值
int min(int a[], int n)
{
int i, min;
min = a[0];
for (i = 1; i < n; i++)
{
if (a[i] < min)
min = a[i];
}
return min;
}
// 函数 aver: 求出含有 n 个元素的数组
阅读全文