原题:
//编写一个程序,从标准输入设备读取一串整数,并将读入的整数依次存放到array及vector中,
// 然后再遍历这两种容器,求其数值总和。将总和及平均值输出至标准输出设备。
//array和vector也像C - style字符串与string的差异一样:
//1.array大小必须固定,而vector可以动态地随元素的插入而拓展储存空间。
//2.array并不存储自身大小。大小固定就意味着我们要考虑到对它的访问可能造成溢出(overflow)。
注意事项:vector如何从键盘接收值?
(需要使用方法 push_back将一个值传递给容器内,但这个值不能直接从键盘接收,需要一个中间变量传递)
push_back、遍历需要size()测量整个容器大小详解
//练习 1.6
//编写一个程序,从标准输入设备读取一串整数,并将读入的整数依次存放到array及vector中,
// 然后再遍历这两种容器,求其数值总和。将总和及平均值输出至标准输出设备。
//array和vector也像C - style字符串与string的差异一样:
//1.array大小必须固定,而vector可以动态地随元素的插入而拓展储存空间。
//2.array并不存储自身大小。大小固定就意味着我们要考虑到对它的访问可能造成溢出(overflow)。
//不过array和C - style字符串不同的是,array并没有像C - style 中null字符(’\0’)这样的“标兵”来表示已到达末尾。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>Array;
int array[10];
int number;
int sum_vector = 0;
int sum_array = 0;
float aver_array = 0;
float aver_vector = 0;
cout << "请输入共输入多少个整数:";//为了限制最大输入整型个数
while (1)
{
cin >> number;
if (number > 10 || number <= 0)
{
cout << "请输入10个以内的正整数:";
}
else
{
break;
}
}
cout << "请输入"<<number<<"个整数:";
for (int i = 0; i < number; i++)
{
int mid = 0;
cin >> mid;//用一个中间变量从键盘接收整数
Array.push_back(mid);//将变量的值传递给Array容器
array[i] = Array[i];//目的:间接将接受的值传给了另外一个容器
}
//求容器内总和和平均值
for (int i = 0; i < number; i++)
{
sum_array += array[i];//array容器内总和
sum_vector += Array[i];//vector容器内总和
}
aver_array = (float)sum_array / number;//array容器内平均值
aver_vector = (float)sum_vector / number;//vector容器内平均值
cout << "array容器内总和为:" << sum_array << endl;
cout << "vector容器内总和为:" << sum_vector << endl;
cout << "array容器内平均值为:" << aver_array << endl;
cout << "vector容器内平均值为:" << aver_vector << endl;
}