班级组织为生病的同学捐款,捐款额分别是:20,0,10,55,90,0,60,40,35,85,100,200,30,0,5,利用数组初始化化,将捐款额放入数组中,编程计算有多少人捐款了,捐款人平均的捐款额是多少?再将捐款额从大到小排序并输出。
时间: 2024-05-16 20:12:48 浏览: 13
好的,下面是代码实现:
```
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int donations[] = {20, 0, 10, 55, 90, 0, 60, 40, 35, 85, 100, 200, 30, 0, 5};
int n = sizeof(donations) / sizeof(int);
int sum = 0;
int count = 0;
for (int i = 0; i < n; i++) {
if (donations[i] > 0) {
sum += donations[i];
count++;
}
}
double avg = (double)sum / count;
cout << "有" << count << "人捐款了,平均捐款额为:" << avg << endl;
sort(donations, donations + n, greater<int>());
cout << "捐款额从大到小排序为:";
for (int i = 0; i < n; i++) {
if (donations[i] > 0) {
cout << donations[i] << " ";
}
}
return 0;
}
```
输出结果为:
```
有11人捐款了,平均捐款额为:60.9091
捐款额从大到小排序为:200 100 90 85 60 55 40 35 30 20 10 5
```
解释一下代码实现:
首先,我们将捐款额放入数组中,并且通过求取数组的长度,计算出捐款人数。然后,通过循环遍历数组,累加捐款额度,并统计捐款人数。最后,通过累加和除以捐款人数求取平均捐款额度。
接着,我们使用 sort 函数对数组进行排序,并采用 greater<int>() 函数对象指定降序排序。最后,通过循环遍历数组,输出排序后的捐款额度。需要注意的是,我们要排除掉捐款额度为 0 的元素。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)