11
C/C++ Program for Average of a stream of numbers.
program solution
#include <stdio.h>
// Returns the new average after including x
float getAvg(float prev_avg, int x, int n)
{
return (prev_avg * n + x) / (n + 1);
}
// Prints average of a stream of numbers
void streamAvg(float arr[], int n)
{
float avg = 0;
for (int i = 0; i < n; i++) {
avg = getAvg(avg, arr[i], i);
printf("Average of %d numbers is %f \n", i + 1, avg);
}
return;
}
// Driver program to test above functions
int main()
{
float arr[] = { 10, 20, 30, 40, 50, 60 };
int n = sizeof(arr) / sizeof(arr[0]);
streamAvg(arr, n);
return 0;
}
Output
Average of 1 numbers is 10.000000
Average of 2 numbers is 15.000000
Average of 3 numbers is 20.000000
Average of 4 numbers is 25.000000
Average of 5 numbers is 30.000000
Average of 6 numbers is 35.000000