Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #15057

program must handle only values between 0 and 100.

From naushil mehta <naushil9@gmail.com>
Newsgroups comp.lang.c++
Subject program must handle only values between 0 and 100.
Date 2012-03-25 13:12 -0700
Organization http://groups.google.com
Message-ID <4792377.697.1332706368089.JavaMail.geo-discussion-forums@pbcr5> (permalink)

Show all headers | View raw


-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; 
} 
[/code]

Back to comp.lang.c++ | Previous | Next | Find similar | Unroll thread


Thread

program must handle only values between 0 and 100. naushil mehta <naushil9@gmail.com> - 2012-03-25 13:12 -0700

csiph-web