c++ assignment

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..

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] >100)
cout<<"wrong input enter again"<<endl;
else 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;
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,008
Latest member
Rahul737

Latest Threads

Top