2,利用cin读入一组整数,把它们存入一个vector对象,计算它们的平均值(结果为整型)并打印输出。
时间: 2024-05-03 22:20:31 浏览: 12
好的,我能回答这个问题。请使用以下代码:
```
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> nums;
int num, sum = 0;
double avg;
cout << "请输入一组整数,以0结束:" << endl;
do {
cin >> num;
if (num != 0) {
nums.push_back(num);
sum += num;
}
} while (num != 0);
avg = sum / (double)(nums.size());
cout << "平均值为:" << (int)avg << endl;
return 0;
}
```
这段代码首先创建了一个 vector 对象 nums,然后利用 cin 读入一组整数,并将它们存储在 nums 中。读入时,当输入的数不为 0 时,就将它加入 nums 中,并累加它们的和。最后,计算平均值,打印输出即可。
相关问题
用c++编写程序,读入20个整数到一个数组输出最大值最小值平均值
好的,这个问题我可以回答。下面是一个简单的C++程序,可以读入20个整数到一个数组,然后输出最大值、最小值和平均值。
```c++
#include<iostream>
using namespace std;
const int N = 20;
int main()
{
int a[N], max_val, min_val, sum = 0;
double avg;
// 读入20个整数到数组a中
for(int i = 0; i < N; i++)
{
cin >> a[i];
}
// 计算最大值、最小值和平均值
max_val = a[0];
min_val = a[0];
for(int i = 0; i < N; i++)
{
sum += a[i];
if(a[i] > max_val)
{
max_val = a[i];
}
if(a[i] < min_val)
{
min_val = a[i];
}
}
avg = (double)sum / N;
// 输出结果
cout << "最大值:" << max_val << endl;
cout << "最小值:" << min_val << endl;
cout << "平均值:" << avg << endl;
return 0;
}
```
这个程序首先定义了一个常量N,表示数组的大小为20。然后定义了一个数组a和三个变量max_val、min_val和sum,分别用来存储最大值、最小值和数组元素的和。程序通过for循环读入20个整数到数组a中。
接着,程序使用for循环计算最大值、最小值和平均值。在计算平均值时,需要将sum强制转换为double类型,以确保计算结果是一个double类型的值。
最后,程序输出最大值、最小值和平均值。
注意,上面的程序没有进行输入的合法性检查,如果输入的不是整数,程序可能会出错。在实际应用中,应该加入输入合法性检查的代码,以确保程序的正确性。
从键盘输入10个整数存入一维数组中,求出他们的和以及平均值并输出。
下面是一个 C++ 的实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int arr[10];
int sum = 0;
double avg = 0.0;
// 从键盘输入10个整数
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i + 1 << "个整数:";
cin >> arr[i];
sum += arr[i];
}
// 计算平均值
avg = static_cast<double>(sum) / 10;
// 输出结果
cout << "这10个整数的和为:" << sum << endl;
cout << "这10个整数的平均值为:" << avg << endl;
return 0;
}
```
运行示例:
```
请输入第1个整数:1
请输入第2个整数:2
请输入第3个整数:3
请输入第4个整数:4
请输入第5个整数:5
请输入第6个整数:6
请输入第7个整数:7
请输入第8个整数:8
请输入第9个整数:9
请输入第10个整数:10
这10个整数的和为:55
这10个整数的平均值为:5.5
```