10. 函数的原型为:double aver(double a[],int n,double *max,double *min);,其功能是同时获取长度为n的实型数组a中的最大元素值、最小元素值和元素平均值。请用C语言编制函数aver并编写相应的主调函数进行测试
时间: 2023-03-13 12:23:01 浏览: 289
函数aver的实现:double aver(double a[],int n,double *max,double *min)
{
int i;
double sum,ave;
*max=a[0];
*min=a[0];
sum=0;
for(i=0;i<n;i++)
{
if(*max<a[i])
{
*max=a[i];
}
if(*min>a[i])
{
*min=a[i];
}
sum+=a[i];
}
ave=sum/n;
return ave;
}主调函数的实现:int main()
{
double a[10]={3.2,7.1,9.8,2.1,5.6,7.9,3.8,8.2,9.1,4.2};
double max,min;
double aver_value;
aver_value=aver(a,10,&max,&min);
printf("数组中最大值为:%f,最小值为:%f,平均值为:%f\n",max,min,aver_value);
return 0;
}
相关问题
10. 函数的原型为:double aver(double a[],int n,double *max,double *min);,其功能是同时获取长度为n的实型数组a中的最大元素值、最小元素值和元素平均值。请编制函数aver并编写相应的主调函数进行测试
### 回答1:
这个函数的编写如下:double aver(double a[],int n,double *max,double *min)
{
int i;
double sum=0;
*max=a[0];
*min=a[0];
for(i=0;i<n;i++)
{
if(a[i]>*max)
*max=a[i];
if(a[i]<*min)
*min=a[i];
sum+=a[i];
}
return sum/n;
} 主调函数如下:#include <stdio.h>
#include <stdlib.h>double aver(double a[],int n,double *max,double *min); int main()
{
double a[10]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.0};
double max,min;
double aver_value;
int n=10;
aver_value=aver(a,n,&max,&min);
printf("The max is %f\nThe min is %f\nThe average is %f\n",max,min,aver_value);
return 0;
}
### 回答2:
函数aver的代码如下:
```c
#include <stdio.h>
double aver(double a[], int n, double *max, double *min)
{
double sum = 0;
*max = a[0];
*min = a[0];
for (int i = 0; i < n; i++) {
sum += a[i];
if (a[i] > *max)
*max = a[i];
if (a[i] < *min)
*min = a[i];
}
return sum / n;
}
int main()
{
double a[] = { 2.7, 4.1, 3.5, 1.9, 5.2 };
int n = sizeof(a) / sizeof(a[0]);
double max, min, average;
average = aver(a, n, &max, &min);
printf("最大值为:%lf\n", max);
printf("最小值为:%lf\n", min);
printf("平均值为:%lf\n", average);
return 0;
}
```
运行主程序后,输出结果为:
最大值为:5.200000
最小值为:1.900000
平均值为:3.480000
函数aver通过遍历数组a,首先初始化sum为0、max和min为数组的第一个元素。然后逐个比较数组中的元素,更新max和min的值,并累加元素值到sum中。最后返回sum除以n得到平均值。主程序中声明一个长度为5的数组a,获取数组的大小作为参数传递给aver函数,并传入指向max和min的指针。在主程序中打印出最大值、最小值和平均值。
### 回答3:
函数aver的实现如下:
```C++
#include <iostream>
double aver(double a[], int n, double* max, double* min) {
double sum = 0.0;
*max = *min = a[0];
for (int i = 0; i < n; i++) {
sum += a[i];
if (a[i] > *max) {
*max = a[i];
}
if (a[i] < *min) {
*min = a[i];
}
}
return sum / n;
}
int main() {
double arr[] = {1.5, 2.5, 3.5, 4.5, 5.5};
int size = sizeof(arr) / sizeof(arr[0]);
double max_val, min_val, average;
average = aver(arr, size, &max_val, &min_val);
std::cout << "最大值:" << max_val << std::endl;
std::cout << "最小值:" << min_val << std::endl;
std::cout << "平均值:" << average << std::endl;
return 0;
}
```
运行结果:
```
最大值:5.5
最小值:1.5
平均值:3.5
```
该程序定义了函数aver,该函数接受一个长度为n的实型数组a,以及两个指向double类型变量的指针max和min。函数内部遍历数组a,计算数组元素之和并更新max和min的值。最后,aver函数返回数组的平均值。
在主函数中,定义了一个包含一些实数的数组arr,并计算数组的大小。然后,调用aver函数,将max和min的地址传递给函数。函数返回平均值后,输出数组的最大值、最小值和平均值。
函数 aver: 求出含有 n 个元素的数组,用c语言补全这个代码,已知其代码原型为:float aver(int a[], int n);
函数aver的代码可能如下所示:
```
float aver(int a[], int n) {
int i;
float sum = 0;
for (i = 0; i < n; i++) {
sum += a[i];
}
return sum / n;
}
```
这个函数接受一个数组和数组元素的数量作为参数。它会依次遍历数组中的每个元素,并将它们加起来。最后,它会将总和除以元素的数量,得到平均值,并返回结果。
请注意,这个函数并没有进行错误处理,如果n为0,则会导致除0错误。在实际应用中,应该加入错误处理代码,避免这种情况的发生。
阅读全文