Hi,
OK, so I am trying to find the minimum and maximum number from an array in my program but it is showing invalid numbers instead of the ones that should be showing.
The program simplifies by finding the max value, minimum value and average of 10 integers with range of 0 and 100.
Here is the code:
Code:
int grades[10], maximum, minimum, average, sum, x;
printf ("Please enter your ten course grades in numbers between 0 and 100:\n");
sum = 0;
for (x = 0; x < 10; x++)
{
printf ("Enter grade #%i: ", x + 1);
scanf ("%i", &grades[x]);
maximum = grades[0];
minimum = grades[0];
if(grades[x] == 100)
printf("The letter grade is A+\n");
if(grades[x] <= 99.9 && grades[x] >= 93.5)
printf("The letter grade is A\n");
if(grades[x] <= 93.4 && grades[x] >= 90)
printf("The letter grade is A-\n");
if(grades[x] <= 89.9 && grades[x] >= 86.5)
printf("The letter grade is B+\n");
if(grades[x] <= 86.4 && grades[x] >= 83.5)
printf("The letter grade is B\n");
if(grades[x] <= 83.4 && grades[x] >= 80)
printf("The letter grade is B-\n");
if(grades[x] <= 79.9 && grades[x] >= 76.5)
printf("The letter grade is C+\n");
if(grades[x] <= 76.4 && grades[x] >= 73.5)
printf("The letter grade is C\n");
if(grades[x] <= 73.4 && grades[x] >= 70)
printf("The letter grade is C-\n");
if(grades[x] <= 69.9 && grades[x] >= 66.5)
printf("The letter grade is D+\n");
if(grades[x] <= 66.4 && grades[x] >= 63.5)
printf("The letter grade is D\n");
if(grades[x] <= 63.4 && grades[x] >= 60)
printf("The letter grade is D-\n");
if(grades[x] <= 59.9 && grades[x] >= 0)
printf("The letter grade is F\n");
if (grades[x] < minimum)
{
minimum = grades[x];
}
if (grades[x] > maximum)
{
maximum = grades[x];
}
sum = sum + grades[x];
}
average = sum / 10;
printf ("The minimum grade is %i\n", minimum);
printf ("The maximum grade is %i\n", maximum);
printf ("The average grade is %i\n", average);
printf ("\n");
And here is the output:
Code:
Please enter your ten course grades in numbers between 0 and 100:
Enter grade #1: 50
The letter grade is F
Enter grade #2: 37
The letter grade is F
Enter grade #3: 89
The letter grade is B+
Enter grade #4: 92
The letter grade is A-
Enter grade #5: 65
The letter grade is D
Enter grade #6: 46
The letter grade is F
Enter grade #7: 87
The letter grade is B+
Enter grade #8: 67
The letter grade is D+
Enter grade #9: 89
The letter grade is B+
Enter grade #10: 42
The letter grade is F
The minimum grade is 42
The maximum grade is 50
The average grade is 66
You can see in the output that it appears that 42 is the minimum and 50 the maximum which both are incorrect.
As I am concerned, I think the code ok, so I have no idea why is this happening.
Please check for any errors.
Thanks for your help and happy Programming!