Question: Write a program that reads integers from the keyboard until the user enters the sentinel value -999. The program should then print the minimum integer read, the maximum integer read and the average of all the integers. (Excluding the sentinel value -999)
I know how to post maxes & mins and set the sentinel value. I don't know how to tell the computer to sum up the values given and take the average since I need a generic function that would work for any number of values.
My code for everything else:
#include <stdio.h>
int main()
{
int num;
int min;
int max;
int avg;
printf("Enter a number (-999 to quit): ");
scanf("%d",&num);
//putting the first number the user entered in variable min and max
min = num;
max = num;
while(num!=-999)
{
if(num<min)
{
min = num;
}
if(num>max)
{
max = num;
}
printf("Enter another number (-999 to quit): ");
scanf("%d",&num);
}
printf("\nThe smallest number entered is %d\n",min);
printf("\nThe largest number entered is %d\n",max);
return 0;
}
5 answers
To calculate the total and average, you need to:
add variables count and total.
Count should be set to one at the same time as max=num, total should be set to num at the same time.
Inside the while loop, increment count by one and increment total by num whenever num!=-999.
After the execution exits the loop, the total will represent the total of the numbers, and avg(should have been declared as float) can be calculated using:
avg=(float)(total)/count;
Give it a try and post what you've got. You should not be far from finishing it.
Where exactly inside the loop should I do this and how?
Do I say count++
to increment count by one, and do I say
total = total+num
inside the while loop to increment total and if so where?
This program runs but I can't get the correct mean average value:
int main()
{
//Variable declarations
int num;
int min;
int max;
float avg;
int count;
int total;
printf("Enter a number (-999 to quit): ");
scanf("%d",&num);
min = num;
max = num;
count = 1;
total = num;
until the user enters -999
while(num!=-999)
{
count++;
total = num;
if(num<min)
{
min = num;
}
if(num>max)
{
max = num;
}
avg = total/count;
printf("Enter another number (-999 to quit): ");
scanf("%d",&num);
}
printf("\nThe smallest number entered is %d\n",min);
printf("\nThe largest number entered is %d\n",max);
printf("\nThe mean average value is %f\n",avg);
//Exit program
return 0;
}
#include<conio.h>
void main()
{
int num;
int min;
int max;
int avg;
clrscr();
printf("Enter a number (-999 to quit): ");
scanf("%d",&num);
//putting the first number the user entered in variable min and max
min = num;
max = num;
while(num!=-999)
{
if(num<min)
{
min = num;
}
if(num>max)
{
max = num;
}
printf("Enter another number (-999 to quit): ");
scanf("%d",&num);
}
printf("\nThe smallest number entered is %d\n",min);
printf("\nThe largest number entered is %d\n",max);
getch();
}