I'm new to coding and am learning C. I just had a question regarding while loops.
#include <stdio.h>
int main(void) {
int integer1, integer2, number, sum, largest, smallest;
float average;
integer1 = 0;
number = 0;
sum = 0;
largest = integer1;
smallest = integer1;
while (integer1 != -1) {
printf("Enter the number: ");
scanf_s("%d", &integer1);
number++;
sum = sum + integer1;
if (integer1 >= largest) {
largest = integer1;
}
if (integer1 <= smallest) {
smallest = integer1;
}
}
average = (float) sum / number;
printf("The number of user's input: %d.\n", number);
printf("The sum of input numbers: %d.\n", sum);
printf("The average of input numbers: %.2f.\n", average);
printf("The largest number is: %d.\n", largest);
printf("The smallest number is %d.\n", smallest);
return 0;
}
The objective of the code I've written is to:
Here's the problem: All of the integer variables that I've declared should NOT include the value of '-1; inputted by the user. I assume that this has to do with an issue of precedence regarding the while loop, but I can't seem to pinpoint what it is. Any help or insight is greatly appreciated.
Thank you!
Sometimes neither while
nor do
/while
loop fit your needs, because the decision to exit the loop must be made in the middle of loop's body.
Reading values and deciding what to do after the read presents one of such situations. A common solution is to set up an infinite loop, and exit it from the middle on a break
:
for (;;) {
printf("Enter the number: ");
scanf_s("%d", &integer1);
if (integer1 == -1) {
break;
}
... // The rest of your code
}