一维实型数组 编写函数计算一维实型数组前n个元素的最大值、最小值和平均值。数组、n、最大值、最小值和平均值均作为函数形参,函数无返回值;在主函数中输入数据,调用函数得到结果。(要求用指针方法实现)
时间: 2023-08-31 10:19:12 浏览: 149
java代码-1.定义一个一维数组,求出数组的最大值,最小值,平均值。
### 回答1:
这是一个用指针方法实现的C语言代码:
```
#include <stdio.h>
void get_statistics(float *array, int n, float *max, float *min, float *avg) {
*max = *min = *array;
float sum = 0;
for (int i = 0; i < n; i++) {
if (array[i] > *max) {
*max = array[i];
}
if (array[i] < *min) {
*min = array[i];
}
sum += array[i];
}
*avg = sum / n;
}
int main() {
int n;
printf("请输入数组元素个数:");
scanf("%d", &n);
float array[n];
printf("请输入%d个实数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%f", &array[i]);
}
float max, min, avg;
get_statistics(array, n, &max, &min, &avg);
printf("前%d个元素的最大值:%.2f\n", n, max);
printf("前%d个元素的最小值:%.2f\n", n, min);
printf("前%d个元素的平均值:%.2f\n", n, avg);
return 0;
}
```
代码中,get_statistics函数计算一维实型数组前n个元素的最大值、最小值和平均值,并将结果通过指针传回主函数中。在主函数中,用户首先输入数组元素个数,然后输入数组中的实数,最后调用get_statistics函数并输出结果。
### 回答2:
首先,定义一个函数,用于计算一维实型数组前n个元素的最大值、最小值和平均值,并将结果存储在形参中。函数的定义如下:
void calculate(float *arr, int n, float *maxValue, float *minValue, float *average) {
*maxValue = *minValue = arr[0];
float sum = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > *maxValue) {
*maxValue = arr[i];
}
if (arr[i] < *minValue) {
*minValue = arr[i];
}
sum += arr[i];
}
*average = sum / n;
}
在主函数中,先声明一个一维实型数组,然后输入数组的长度n和n个元素的值。接着,声明变量来保存计算的结果,并通过调用函数来计算出最大值、最小值和平均值。最后,输出结果。
示例代码如下:
#include <iostream>
using namespace std;
void calculate(float *arr, int n, float *maxValue, float *minValue, float *average) {
*maxValue = *minValue = arr[0];
float sum = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > *maxValue) {
*maxValue = arr[i];
}
if (arr[i] < *minValue) {
*minValue = arr[i];
}
sum += arr[i];
}
*average = sum / n;
}
int main() {
int n;
cout << "请输入数组的长度:";
cin >> n;
float *arr = new float[n];
cout << "请输入数组的元素值:";
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
float maxValue, minValue, average;
calculate(arr, n, &maxValue, &minValue, &average);
cout << "最大值:" << maxValue << endl;
cout << "最小值:" << minValue << endl;
cout << "平均值:" << average << endl;
delete[] arr;
return 0;
}
通过运行以上代码,就可以输入一维实型数组的长度和元素值,然后得到数组前n个元素的最大值、最小值和平均值的计算结果。
### 回答3:
这里是一个用指针方法实现的计算一维实型数组前n个元素的最大值、最小值和平均值的函数。
```c
#include <stdio.h>
void computeArray(float* array, int n, float* max, float* min, float* avg) {
float sum = 0.0;
*max = array[0]; // 将第一个元素的值赋给最大值
*min = array[0]; // 将第一个元素的值赋给最小值
for (int i = 0; i < n; i++) {
if (array[i] > *max) {
*max = array[i]; // 如果当前元素大于最大值,则更新最大值
}
if (array[i] < *min) {
*min = array[i]; // 如果当前元素小于最小值,则更新最小值
}
sum += array[i]; // 累加每个元素的值到sum中
}
*avg = sum / n; // 平均值为 sum / n
}
int main() {
int n;
printf("请输入数组的长度n:");
scanf("%d", &n);
float array[n];
printf("请输入数组的%d个元素:", n);
for (int i = 0; i < n; i++) {
scanf("%f", &array[i]);
}
float max, min, avg;
computeArray(array, n, &max, &min, &avg);
printf("最大值:%f\n", max);
printf("最小值:%f\n", min);
printf("平均值:%f\n", avg);
return 0;
}
```
在主函数中,我们首先输入数组的长度n,并声明一个大小为n的一维实型数组array,用于存储输入的n个元素。然后,我们输入这n个元素的值。接下来,我们调用computeArray函数,并将数组array的地址、n的值以及存储最大值、最小值和平均值的变量的地址作为参数传递给函数。在computeArray函数中,我们使用指针访问数组元素,并在遍历数组过程中记录最大值、最小值和累加数组元素的和。最后,我们将计算得到的最大值、最小值和平均值打印出来。
阅读全文