I have a program with a single function with two parameters. I want to call the
ID: 3624952 • Letter: I
Question
I have a program with a single function with two parameters. I want to call the function three times; first to compute the average of all the numbers entered, second to compute the average of all positive numbers entered, and third to compute the average of all the negative numbers entered.I keep coming up with a logic error while trying to compute the average of the positive and negative numbers. I can isolate the problem but cannot figure out how to correct it.
All help is appreciated.
#include <iostream>
using namespace std;
float ComputeAverage(int num[], int numNum)
{float sum = 0;
float average = 0;
int i = 0;
for(i = 0; i < numNum; i++){
sum += num[i];
average = sum/numNum;
}
return(average);
}
int main ()
{
{int num[20], pos[20], neg[20], numNum, posCount = 0, negCount = 0, i;
float averageAll, averagePos, averageNeg;
cout <<"Please enter how many numbers to be entered:";
cin >> numNum;
cout <<numNum<< " are being entered into the array..."<<endl;
for(i = 0; i < numNum; i++){
cin >>num[i];
}
int sum=0;
for(i = 0; i < numNum; i++){
if(num[i] > 0){
pos[i] = num[i];
posCount++;
}
else{
neg[i] = num[i];
negCount++;
}
}
averageAll = ComputeAverage (num, numNum);
cout <<averageAll<< " is the average of all the numbers entered!"<<endl;
averagePos = ComputeAverage (pos, posCount);
cout <<averagePos<< " is the average of all the positive numbers entered!"<<endl;
averageNeg = ComputeAverage (neg, negCount);
cout <<averageNeg<< " is the average of all the negative numbers entered!"<<endl;
}
system ("PAUSE");
return 0;
}
Explanation / Answer
// a small modification in your code...Enjoy. CHEErs.
// HIGH LIGHTED IN RED COLOUR AND WORKNG FINE
#include <iostream>
using namespace std;
float ComputeAverage(int num[], int numNum)
{float sum = 0;
float average = 0;
int i = 0;
for(i = 0; i < numNum; i++){
sum += num[i];
average = sum/numNum;
}
return(average);
}
int main ()
{
{int num[20], pos[20], neg[20], numNum, posCount = 0, negCount = 0, i;
float averageAll, averagePos, averageNeg;
cout <<"Please enter how many numbers to be entered:";
cin >> numNum;
cout <<numNum<< " are being entered into the array..."<<endl;
for(i = 0; i < numNum; i++){
cin >>num[i];
}
int sum=0;
for(i = 0; i < numNum; i++){
if(num[i] > 0){
pos[posCount++] = num[i];
}
else{
neg[negCount++] = num[i];
}
}
averageAll = ComputeAverage (num, numNum);
cout <<averageAll<< " is the average of all the numbers entered!"<<endl;
averagePos = ComputeAverage (pos, posCount);
cout <<averagePos<< " is the average of all the positive numbers entered!"<<endl;
averageNeg = ComputeAverage (neg, negCount);
cout <<averageNeg<< " is the average of all the negative numbers entered!"<<endl;
}
system ("PAUSE");
return 0;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.