Write a multithreaded program that calculates various statistical values for a list of numbers. This program will read a series of numbers from standard input (scanf()) and then will create three separate worker threads. One thread will determine the average of the numbers, the second will determine the maximum value and the third will determine the minimum number. For example, suppose your program is passed the integers
90 81 78 95 79 72 85
The program will report
The average value is 82
The minimum value is 72
The maximum value is 95
The variables representing the average, minimum and maximum values will be stored globally. The worker threads will set these values, and the parent thread will output the values once the workers have exited.
- Your threads should run in parallel, not concurrently.
- The end of the input will be denoted by reading a 0 (which is NOT to be used as part of the calculation).
- You are to use pipesto deliver numbers read to the worker threads. To learn more about pipes use “man –s 2 pipe” in a terminal to see the man page. Note the “-s 2” asks for the pipe manual from section 2 of the man pages. Without it you will get a different kind of pipe man page L
Once completed be sure to submit your C code via D2L.