All pastes #800265 Raw Edit

perry753

public c v1 · immutable
#800265 ·published 2007-11-28 09:02 UTC
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.");	}}