program must handle only values between 0 and 100.

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] = 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,979
Messages
2,570,184
Members
46,721
Latest member
DollieSawt

Latest Threads

Top