#include <iostream>
#include <vector>
using namespace std;

void print1(const vector<int>& vec) {
	cout<<"De inhoud van de vector is:"<<endl;
	for (vector<int>::size_type index(0); index!=vec.size(); ++index) {
		cout<<vec[index]<<" ";
	}
	cout<<endl;
}

void print2(const vector<int>& vec) {
	cout<<"De inhoud van de vector is:"<<endl;
	for (vector<int>::const_iterator iter(vec.begin()); iter!=vec.end(); ++iter) {
		cout<<*iter<<" ";
	}
	cout<<endl;
}

double gem(const vector<int>& vec) {
	double som(0.0);
	for (vector<int>::const_iterator iter(vec.begin()); iter!=vec.end(); ++iter) {
		som+=*iter;
	}
	return som/vec.size();
}

int main() {
	vector<int> v;
	int i;
	cout<<"Geef een aantal getallen (afgesloten door een 0):"<<endl;
	cin>>i;
	while (i!=0) {
		v.push_back(i);
		cin>>i;
	}
	print1(v);
	cout<<"Het gemiddelde is: "<<gem(v)<<endl;
	cout<<"Nu wordt een deel van de vector bewerkt."<<endl;
	if (v.size()>=4) {
		for (vector<int>::iterator iter(v.begin()+2); iter!=v.begin()+4; ++iter) {
			*iter*=2;
		}
	}
	print2(v);
	cout<<"Nu wordt de vorige bewerking weer teruggedraaid."<<endl;
	if (v.size()>=4) {
		for (vector<int>::size_type i(2); i<4; ++i) {
			v[i]/=2;
		}
	}
	print1(v);
	cin.get();
	cin.get();
	return 0;
}
