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";
}