使用c++编写程序:某集合中有3个整数,分别是:128,78和63,从键盘中输入n(n>=1)个整数追加到该集合中。输出追加后该集合中的所有数据,并求该集合中大于平均值元素的个数。
时间: 2023-12-10 13:37:12 浏览: 28
c++程序设计实现集合交集并集差集.pdf
5星 · 资源好评率100%
以下是使用C++编写的程序:
```c++
#include <iostream>
using namespace std;
int main() {
const int size = 3;
int arr[size] = {128, 78, 63};
int n, sum = 0, count = 0;
cout << "请输入要追加的整数个数n:";
cin >> n;
int *newArr = new int[size + n]; // 动态分配内存
// 复制原数组元素
for (int i = 0; i < size; i++) {
newArr[i] = arr[i];
sum += arr[i];
}
// 追加新元素
for (int i = size; i < size + n; i++) {
cout << "请输入第" << i - size + 1 << "个整数:";
cin >> newArr[i];
sum += newArr[i];
}
double avg = (double)sum / (size + n); // 计算平均值
// 输出集合中所有数据
cout << "集合中所有数据:";
for (int i = 0; i < size + n; i++) {
cout << newArr[i] << " ";
if (newArr[i] > avg) {
count++; // 统计大于平均值的元素个数
}
}
cout << endl << "大于平均值的元素个数为:" << count << endl;
delete[] newArr; // 释放动态分配的内存
return 0;
}
```
代码实现的主要思路是:
1. 声明一个大小为3的数组`arr`,并将初始元素赋值为`128`、`78`和`63`;
2. 从键盘中输入追加的整数个数`n`;
3. 动态分配内存,复制原数组元素到新数组`newArr`中;
4. 追加新元素到新数组`newArr`中,并计算新数组所有元素的和;
5. 计算新数组所有元素的平均值;
6. 输出新数组所有元素,并统计大于平均值的元素个数;
7. 释放动态分配的内存。
注意事项:
1. 在使用动态内存分配时,需要手动释放已分配的内存,避免内存泄漏;
2. 平均值的计算要使用`double`类型,否则可能出现精度问题。
阅读全文