用c++求一个一维数组中元素的最大最小和平均值
时间: 2023-06-08 13:07:38 浏览: 752
好的,我知道了。对于您的问题,以下是求解一维数组中元素的最大值、最小值、和、平均值的 C 代码示例:
```c
#include <stdio.h>
int main()
{
int arr[] = {10, 5, 30, 15, 20};
int n = sizeof(arr) / sizeof(arr[0]); // 数组元素个数
int i;
int max = arr[0], min = arr[0], sum = 0;
double avg;
for(i = 0; i < n; i++)
{
if(arr[i] > max)
{
max = arr[i];
}
if(arr[i] < min)
{
min = arr[i];
}
sum += arr[i];
}
avg = (double)sum / n;
printf("最大值为:%d\n", max);
printf("最小值为:%d\n", min);
printf("和为:%d\n", sum);
printf("平均值为:%f\n", avg);
return 0;
}
```
运行结果如下:
```
最大值为:30
最小值为:5
和为:80
平均值为:16.000000
```
希望这可以帮助您解决问题。
相关问题
求一个一维数组中元素的最大最小和平均值
好的,以下是针对您的第一个问题的回答:
假设这个一维数组为arr,数组长度为n,则
最大值为:max = arr[0];
最小值为:min = arr[0];
所有元素的和为:sum = 0;
平均值为:avg = 0;
遍历数组,对于每个元素:
如果该元素大于max,则将max更新为当前元素;
如果该元素小于min,则将min更新为当前元素;
将该元素加入到sum中;
最后将sum除以n,得到平均值avg。
C++代码实现:
```c++
#include<iostream>
using namespace std;
int main(){
int arr[] = {5, 8, 2, 6, 1, 9, 4, 7, 3};
int n = sizeof(arr) / sizeof(arr[0]);
int max = arr[0];
int min = arr[0];
int sum = 0;
double avg = 0.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];
}
avg = (double)sum / n;
cout<<"Max: "<<max<<endl;
cout<<"Min: "<<min<<endl;
cout<<"Sum: "<<sum<<endl;
cout<<"Avg: "<<avg<<endl;
return 0;
}
```
希望这个回答对您有所帮助!
1、在main函数中,编写C++代码,实现以下要求: (1)通过new运算符动态创建一个长度为10的实型一维数组,返回的数组地址存储在指针变量p中,键盘输入任意10个数据存储在数组中; (2)写代码求出这10个数据的平均值,并分别统计输出数组中数据大于、等于和小于平均值的个数,并输出结果; (3)查找数组中的最大数据,并将其放在数组最前面,即0号单元; (4)使用指针变量p输出数组中的各元素。 (5)查找数组中的最小数据和位置,并输出结果; (6)键盘输入任意一个整数,查找该数据在数组中的下标并输出,如果找不到则输出“not find”。 (7)将数组转置,即 0号与9号交换,1号与8号交换...... (8)使用指针变量p输出数组中的各元素。
以下是实现要求的C++代码:
```cpp
#include <iostream>
using namespace std;
int main() {
float *p = new float[10]; // 动态创建长度为10的实型一维数组
float sum = 0; // 存储数组元素之和
float avg; // 存储平均值
int above = 0, equal = 0, below = 0; // 分别存储大于、等于和小于平均值的个数
int maxIndex = 0, minIndex = 0; // 存储最大和最小元素的下标
float temp; // 用于交换元素的临时变量
// 键盘输入数组元素
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个数:";
cin >> p[i];
sum += p[i];
}
// 计算平均值和大于、等于、小于平均值的个数
avg = sum / 10.0;
for (int i = 0; i < 10; i++) {
if (p[i] > avg) above++;
else if (p[i] == avg) equal++;
else below++;
}
cout << "平均值为:" << avg << endl;
cout << "大于平均值的个数为:" << above << endl;
cout << "等于平均值的个数为:" << equal << endl;
cout << "小于平均值的个数为:" << below << endl;
// 查找最大元素并放在数组最前面
for (int i = 1; i < 10; i++) {
if (p[i] > p[maxIndex]) maxIndex = i;
}
temp = p[0];
p[0] = p[maxIndex];
p[maxIndex] = temp;
// 输出数组中的各元素
cout << "数组中的各元素为:";
for (int i = 0; i < 10; i++) {
cout << p[i] << " ";
}
cout << endl;
// 查找最小元素和位置
for (int i = 1; i < 10; i++) {
if (p[i] < p[minIndex]) minIndex = i;
}
cout << "最小元素为:" << p[minIndex] << ",位置为:" << minIndex << endl;
// 查找指定元素并输出下标
int num;
cout << "请输入要查找的整数:";
cin >> num;
int index = -1; // 存储查找到的下标
for (int i = 0; i < 10; i++) {
if (p[i] == num) {
index = i;
break;
}
}
if (index == -1) cout << "not find" << endl;
else cout << "该数在数组中的下标为:" << index << endl;
// 数组转置
for (int i = 0; i < 5; i++) {
temp = p[i];
p[i] = p[9-i];
p[9-i] = temp;
}
// 再次输出数组中的各元素
cout << "转置后数组中的各元素为:";
for (int i = 0; i < 10; i++) {
cout << p[i] << " ";
}
cout << endl;
delete [] p; // 释放内存
return 0;
}
```
以上代码中,我们使用new运算符动态创建了一个长度为10的实型一维数组,并将数组地址存储在指针变量p中。接着,我们通过键盘输入任意10个数据存储在数组中,并计算出了这10个数据的平均值,并分别统计输出了数组中数据大于、等于和小于平均值的个数。
然后,我们查找了数组中的最大数据,并将其放在数组最前面,即0号单元。接着,我们使用指针变量p输出了数组中的各元素,并查找了数组中的最小数据和位置,并输出了结果。
接下来,我们通过键盘输入任意一个整数,查找该数据在数组中的下标并输出,如果找不到则输出“not find”。最后,我们将数组转置,即0号与9号交换,1号与8号交换......,并再次使用指针变量p输出了数组中的各元素。
最后,记得释放内存,即使用delete运算符释放new运算符分配的内存空间。
阅读全文
相关推荐















