cin returns fail on trying to read double value.
please help me find the bug.
Code:
#include<iostream>
#include<array>
using namespace std;
const int MAX = 10;
void read_donations(array<double, MAX>& a, int& count);
int main()
{
	array<double, MAX> donations;
	int count;
	read_donations(donations, count);
	double sum = 0; int i;
	for (i = 0; i < count; ++i)
	{
		sum += donations[i];
	}
	double average = sum / count;
	cout << "average is " << average << endl;
	int larger=0;
	for (i = 0; i < count; i++)
	{
		if (donations[i]>average)
			++larger;
	}
	cout << larger << " elements are larger than the average.\n";
}
void read_donations(array<double, MAX>& a,int& count)
{
	int i = 0; count = 0;
	cout << "element 1: ";
	while ((i<a.size())&&!(cin >> a[i]))
	{
		++i; ++count;
		cout << "element " << i + 1 << ": ";
	}
	if (count != MAX)
		cout << "read only upto " << count << " elements.\n";
	else
		cout << "all elements read.\n";
}