rendered paste body// Lab D// By Perry Huang// 11/27/2007/*Notes & Comments:- string.h is required for memcpy- math.h is required for roundf function- arrays were used to maintain sanity- flush used after scanf's- numbers[10] contains 10 numbers that are from user input- rounded[10] is same as numbers[10], but rounded with roundf after- average carries the average of the values in numbers array*/#include <stdio.h>#include <math.h>#include <string.h>#define FLUSH while(getchar()!='\n')float input();float findaverage(float *numbers);void output(float *numbers, float *rounded, float, float);void printasterisk(float);void repeat();void main(){ float numbers[10], rounded[10], average, raverage; puts("Hi. This program will have you input 10 numbers from 1 to 30. Then it will print out the numbers and print out a rounded number of asterisks. At the end, the average of the numbers will be printed along with the corresponding rounded number of asterisks."); numbers[0] = input(); numbers[1] = input(); numbers[2] = input(); numbers[3] = input(); numbers[4] = input(); numbers[5] = input(); numbers[6] = input(); numbers[7] = input(); numbers[8] = input(); numbers[9] = input(); memcpy(rounded, numbers, sizeof numbers); rounded[0] = roundf(rounded[0]); rounded[1] = roundf(rounded[1]); rounded[2] = roundf(rounded[2]); rounded[3] = roundf(rounded[3]); rounded[4] = roundf(rounded[4]); rounded[5] = roundf(rounded[5]); rounded[6] = roundf(rounded[6]); rounded[7] = roundf(rounded[7]); rounded[8] = roundf(rounded[8]); rounded[9] = roundf(rounded[9]); average = findaverage(numbers); raverage = roundf(average); puts("\nOUTPUT\n"); printf("%20s%20s%30s\n", "Numbers", "Rounded Values", "Asterisks"); output(numbers, rounded, average, raverage); repeat();}float input(){ float inputnum; printf("Please input a number: "); scanf("%f", &inputnum); FLUSH; while (inputnum < 1 || inputnum > 30) { printf("You have entered a false value. Please enter a number from 1 to 30: "); } return(inputnum);}float findaverage(float *numbers){ return((numbers[0] + numbers[1] + numbers[2] + numbers[3] + numbers[4] + numbers[5] + numbers[6] + numbers[7] + numbers[8] + numbers[9]) / 10);}void output(float *numbers, float *rounded, float oaverage, float oraverage){ printf("%20.2f%20.2f", numbers[0], rounded[0]); printasterisk(rounded[0]); printf("%20.2f%20.2f", numbers[1], rounded[1]); printasterisk(rounded[1]); printf("%20.2f%20.2f", numbers[2], rounded[2]); printasterisk(rounded[2]); printf("%20.2f%20.2f", numbers[3], rounded[3]); printasterisk(rounded[3]); printf("%20.2f%20.2f", numbers[4], rounded[4]); printasterisk(rounded[4]); printf("%20.2f%20.2f", numbers[5], rounded[5]); printasterisk(rounded[5]); printf("%20.2f%20.2f", numbers[6], rounded[6]); printasterisk(rounded[6]); printf("%20.2f%20.2f", numbers[7], rounded[7]); printasterisk(rounded[7]); printf("%20.2f%20.2f", numbers[8], rounded[8]); printasterisk(rounded[8]); printf("%20.2f%20.2f", numbers[9], rounded[9]); printasterisk(rounded[9]); puts("Average"); printf("%20.2f%20.2f", oaverage, oraverage); printasterisk(oraverage);}void printasterisk(float nos){ float count; printf("\t\t"); for (count = 1; count <= nos; count++) { printf("*"); } printf("\n");}void repeat(){ char getme; puts("\nWould you like to repeat this program? Y/n"); getme = getchar(); if (getme == 'Y' || getme == 'y' || getme == '\n') { puts("\nRepeating..."); main(); } else { puts("\nDone. OK to exit."); }}