Help with arrays & histograms

Hello all, first time posting here looking for a little help. The program I have to write for my class is just about arrays and passing arrays through functions, as well as sorting and searching through arrays. Everything works on it except the histogram part. I'll admit I have no idea what I'm doing wrong with this:
<code>#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::getline;

#include <cstdlib>

int readArray(int,int[]);
int avg(int, const int[]);
int stat(int, const int[], int&,int&,int&);
int histogram(int,const int[],int[]);

int main()
{
const int MAX_SCORE = 50; //the maximum # of scores that a user can enter
int score[MAX_SCORE]; //create storage for up to 50 scores
int nScores = readArray(MAX_SCORE, score); //read array and return count

int avgScore, minScore, maxScore;
if(stat(nScores, score, avgScore,minScore,maxScore) == 0)
{
cout << "The average of the data entered is: " << avgScore << endl
<< "The maximum score entered is: " << maxScore << endl
<< "The minimum score entered is: " << minScore << endl;
int grade[5] = {0}; //={} is for newer compilers only
histogram(nScores,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;
}

int readArray(int n,int integers[])
{
char buf[100];
//prompt user for input
cout << "Enter up to 50 numbers, after last score entered use '-1': " << endl;
int count = 0;
//read the scores from the keyboard, space and/or newline delimited
for(int i = 0;i < n;i++)
{
cin >> buf;
cin.ignore(100,10);
int nums = atoi(buf);
integers[i] = nums;

if(integers[i] < 0)
break;
else
count++;
}
return count;

}
int avg(int n,const int integers[])
{
int total = 0;
if(n == 0)
{
return 0;
}
for(int i = 0;i < n;i++)
{
total = total + integers[i];
}
return total / n;
}
int stat(int n,const int integers[],int& avgs,int& min,int& max)
{
if(integers[0] < 0)
{
return 1;
}
if(n == 0)
{
return 0;
}
avgs = avg(n,integers);
min = integers[0];
max = integers[0];
for(int i = 0;i < n;i++)
{
if(integers[i] < min)
{
min = integers[i];
}
if(integers[i] > max)
{
max = integers[i];
}
}
return 0;
}
int histogram(int n,const int integers[],int letters[])
{
if(integers[0] < 0)
{
return 1;
}
if(n == 0)
{
return 0;
}
for(int i = 0;i < n;i++)
{
if(integers[i] >= 90)
{
letters[0] = integers[i];
letters[0]++;
}
else if(integers[i] >= 80)
{
letters[1] = integers[i];
letters[1]++;
}
else if(integers[i] >= 70)
{
letters[2] = integers[i];
letters[2]++;
}
else if(integers[i] >= 60)
{
letters[3] = integers[i];
letters[3]++;
}
else if(integers[i] < 50)
{
letters[4] = integers[i];
letters[4]++;
}
}

}
</code>
Last edited on
Topic archived. No new replies allowed.