In: Computer Science
Write a C++ program that inputs a sequence of integers into a vector, computes the average, and then outputs the # of input values, the average, and the values themselves. There are 0 or more inputs values, followed by a negative value as the sentinel; the negative value is not stored and not counted. The following sample input:
10 20 0 99 -1
would produce the following output:
N: 4 Avg: 32.25 10 20 0 99
The main program has been written for you, your job is to implement the two functions InputData andGetAverage. See the comments in the "student.cpp" file for specific implementation details.
main.cpp
#include <iostream>
#include <vector>
using namespace std;
// functions from student.cpp:
int InputData(vector<int>& V);
double GetAverage(vector<int> V, int N);
int main()
{
// assume at most 100 inputs:
vector<int> inputs(100);
int N;
double avg;
N = InputData(inputs);
avg = GetAverage(inputs, N);
cout << "N: " << N << endl;
cout << "Avg: " << avg << endl;
for (int i = 0; i < N; ++i)
{
cout << inputs.at(i) << endl;
}
return 0;
}
student.cpp
int InputData(vector<int>& V)
{
// TODO
return 0;
}
//
// GetAverage
//
// Returns the average of the first N values in the vector; if N is
0 then
// 0.0 is returned.
//
double GetAverage(vector<int> V, int N)
{
// TODO
return 0.0;
}
need to change the code for desired functionality of program.
if you don't want to change main program then just copy the 2 function added at last in the code.
here is edited code:
main.cpp :
#include <iostream>
#include <vector>
using namespace std;
// functions from student.cpp:
int InputData(vector<int>& V);
double GetAverage(vector<int> V, int N);
int main() {
// declare variables
vector<int> inputs;
int N;
double avg;
// get input from user
cout << "Enter numbers to calculate Average
:(enter negative number to stop entering)" << endl;
int input; // variable input to store input number
from use
// while loop to get input numbers
while (true) {
cin >> input; // get user
input
if (input < 0) {
// negative
number act as sentinel value
break; // break
the while loop and calculate average
}
else {
// add number to
vactor
inputs.push_back(input);
}
}
N = InputData(inputs);
avg = GetAverage(inputs, N);
cout << "N: " << N << endl;
cout << "Avg: " << avg <<
endl;
for (int i = 0; i < N; ++i) {
cout << inputs.at(i) <<
endl;
}
return 0;
}
int InputData(vector<int>& V){
return V.size();
}
// Returns the average of the first N values in the vector; if N
is 0 then
// 0.0 is returned.
double GetAverage(vector<int> V, int N)
{
if (N == 0) {
return 0.0;
}
else {
int sum = 0; //sum of total numbers
counted
// loop for each number to count
average
for (int i = 0; i < N; i++)
{
sum = sum +
V.at(i); // add each number to the sum
}
// calculate average
double avg = sum / (N * 1.0);
//multiply by 1.0 to get double division insted of integer
division
return avg;
}
}