求一个整型数组a[10]中所有元素的最大值、最小值及平均值,再输出。(用指针完成)
时间: 2024-02-05 09:11:02 浏览: 118
以下是用指针完成的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int a[10] = {2, 4, 6, 8, 1, 3, 5, 7, 9, 0};
int *p = a;
int max = *p, min = *p, sum = 0;
for (int i = 0; i < 10; i++) {
if (*(p+i) > max) {
max = *(p+i);
}
if (*(p+i) < min) {
min = *(p+i);
}
sum += *(p+i);
}
cout << "最大值:" << max << endl;
cout << "最小值:" << min << endl;
cout << "平均值:" << static_cast<double>(sum) / 10 << endl;
return 0;
}
```
首先定义了一个整型数组a,然后定义了一个指向a的指针p。接下来,使用p来遍历整个数组,同时求出最大值、最小值和总和,最后输出结果。注意,要将sum强制转换为double类型,以便得到正确的平均值。
相关问题
(c)编写一个函数,计算一个长度为n 的整型数组a 中元素的最大值、最小值以及所有元素的均值,在主函数数中调用该函数并输出三个计算的结果
在C语言中,你可以创建一个名为`calculateArrayStats`的函数,用于计算给定整型数组的最值和平均值。首先,我们需要初始化一些变量,如最大值`maxValue`、最小值`minValue`和总和`sum`。然后遍历数组,更新这些值。最后,计算平均值,并在主函数中调用这个函数并打印结果。
```c
#include <stdio.h>
// 函数声明
void calculateArrayStats(int arr[], int n, int* max, int* min, float* mean);
int main() {
int a[] = {5, 2, 9, 1, 7, 3}; // 示例数组
int n = sizeof(a) / sizeof(a[0]); // 数组长度
int maxVal, minVal;
float avg;
// 调用函数并获取结果
calculateArrayStats(a, n, &maxVal, &minVal, &avg);
printf("最大值: %d\n", maxVal);
printf("最小值: %d\n", minVal);
printf("平均值: %.2f\n", avg);
return 0;
}
// 实现计算函数
void calculateArrayStats(int arr[], int n, int* max, int* min, float* mean) {
*max = arr[0]; // 假设第一个元素为初始最大值
*min = arr[0];
int sum = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > *max)
*max = arr[i];
if (arr[i] < *min)
*min = arr[i];
sum += arr[i];
}
*mean = (float)sum / n;
}
```
在这个示例中,`calculateArrayStats`函数接收数组、数组长度以及指向最大值和最小值的指针,返回值部分通过引用传递可以更新它们的值。主函数则负责调用此函数并显示结果。
找出包含20元素的整型数组中的最大值、最小值,并计算数组所有元素的平均值, //按要求完成如下工作: //(1)使用指针作为函数参数设计一个函数实现以上功能 //(2)使用引用作为函数参数设计一个函数实现以上功能 //要求在main函数中使用随机数初始化数组,并在main函数中输出数组的最大值、最小值和平均值
可以回答这个问题。以下是使用指针和引用分别实现的函数:
使用指针作为函数参数的实现:
void getMinMaxAvg(int* arr, int size, int* max, int* min, float* avg) {
*max = *min = arr[];
*avg = ;
for (int i = ; i < size; i++) {
if (arr[i] > *max) {
*max = arr[i];
}
if (arr[i] < *min) {
*min = arr[i];
}
*avg += arr[i];
}
*avg /= size;
}
使用引用作为函数参数的实现:
void getMinMaxAvg(int* arr, int size, int& max, int& min, float& avg) {
max = min = arr[];
avg = ;
for (int i = ; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
avg += arr[i];
}
avg /= size;
}
在 main 函数中,可以这样调用函数并输出结果:
int main() {
int arr[20];
srand(time(NULL));
for (int i = ; i < 20; i++) {
arr[i] = rand() % 100;
cout << arr[i] << " ";
}
cout << endl;
int max, min;
float avg;
// 使用指针作为函数参数
getMinMaxAvg(arr, 20, &max, &min, &avg);
cout << "max: " << max << endl;
cout << "min: " << min << endl;
cout << "avg: " << avg << endl;
// 使用引用作为函数参数
getMinMaxAvg(arr, 20, max, min, avg);
cout << "max: " << max << endl;
cout << "min: " << min << endl;
cout << "avg: " << avg << endl;
return ;
}
阅读全文