N
naushil mehta
-1 pt for readArray() handles the out of range data (input <-1) as well as(input >100) the same valid data!
when program encounters the out of range data ( input <-1 || input >100), program prompt user “wrong input, and enter
againâ€. Do not enter the out of range (invalid data) to the score[]array.
when program encounters the out of range data ( input <-1 || input >100), program prompt user “wrong input, and enter
againâ€. Do not enter the out of range (invalid data) to the score[]array.
Code:
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int readArray(int, int[]);//implement step 2 of 5
int avg(int , const int[]); //implement step 3 of 5
int stat(int, const int[], int&, int&, int&); //implement step 4 of 5
int histogram(int,const int[], int[]);//implement step 5 of 5
int main()
{
const int MAX_SCORES = 100;
int score[MAX_SCORES];
//cout<< readArray(MAX_SCORES,score)<<​endl;
int nScore = readArray(MAX_SCORES,score);
cout<<"Average of the array: "<<avg(nScore, score) <<endl;
//step 4 of 5
int avgScore, minScore, maxScore;
int grade[5]={0};
if (stat( nScore, score, avgScore, minScore, maxScore) == 0)
{
cout<<"Average = "<< avgScore << endl
<<"Max = "<<maxScore <<endl
<<"Min = "<<minScore <<endl;
//step 5 of 5
histogram(​nScore,score,grade);
cout <<"As: "<< grade[0]<<endl;
cout <<"Bs: "<< grade[1]<<endl;
cout <<"Cs: "<< grade[2]<<endl;
cout <<"Ds: "<< grade[3]<<endl;
cout <<"Fs: "<< grade[4]<<endl;
}
else
{
cout << "no data"<<endl;
}
cin.get();
cin.get();
return 0;
}
int readArray(int max_score, int score[])
{
int nScores =0;
for(int i =0; i< max_score; i++)
{
cout<<"Enter element(-1 to end input): ";
cin >> score[i];
cout<<endl;
if (score[i] == -1)
{
score[​i] = NULL;
break;
}
else
{
​nScores++;
}
if(nScores>=​max_score)
break;
cin.ignore();
}
return nScores;
}
int avg(int n, const int score[])
{
int total = 0;
if (n == 0)
return 0;
for(int i = 0; i < n; i++)
{
total += score[i];
}
return total/n;
}
int stat(int n, const int score[], int& avg, int& mn, int& mx)
{
if (n == 0)
return 1;
int total = 0;
for(int i = 0; i < n; i++)
{
total =total + score[i];
if (( i == 0) || (mn > score[i]))
mn = score[i];
if ((i == 0) || (mx < score[i]) )
mx = score[i];
}
avg = total / n;
return 0;
}
int histogram(int nScore,const int score[], int grade[])
{
if(sizeof(score)/​sizeof(int)==0)
return 1;
for(int i = 0; i < nScore; i++)
{
if (score[i] >= 90)
{
grade[​0]++;
}
else if(score[i] >= 80)
{
grade[​1] ++;
}
else if(score[i] >= 70)
{
grade[​2] ++;
}
else if(score[i] >= 60)
{
grade[​3] ++;
}
else
{
grade[​4] ++;
}
}
return 0;
}