Hi:

I am learning C and I am having a little trouble with this program.

The task was to write a program that can determine the largest and smallest integers.

I am using a while loop to accumulate the numbers

the value 0 acts as a "sentinel" value that will stop the program.

The problem is when I enter 0 to stop the program, it will take 0 as the smallest number. This also happens when I do other values like -99 or others. Any help will be greatly appreciated.

Code://Write a program that reads an integer and determines and prints whether it is od or even #include <stdio.h> #include <math.h> #include <limits.h> int main(void) { int numbers;//numbers int counter = 0;//counter of variables int accumulator = 0;//adds all numbers up int average;//computes average of all the numbers int largest = 0; int smallest = 0; int counting = -99;//value that, when entered, will stop program. while(numbers != 0) { printf("Please enter a number. Enter 0 to end.\n"); scanf("%d", &numbers); accumulator += numbers; if(numbers == 0) { printf("Thank you.\n");; if(numbers < smallest && numbers !=0 ); { numbers = smallest; }//end if }//end if else { counter++; }//end if if(numbers % 2 == 0 && numbers != 0) { printf("%d is an even number.\n", numbers); }//end if else if(numbers % 2 != 0 && numbers != 0) { printf("%d is an odd number.\n", numbers); }//end else if(numbers < smallest && numbers != 0) { smallest = numbers; }//end if if(numbers > largest && numbers != 0) { largest = numbers; }//end if }//end while average = accumulator/counter; if(counter > 2) { printf("User made %d entries\n", counter); }//end if else { printf("User made 1 entry.\n"); }//end else printf("Total of all entries: %d\n", accumulator); printf("Average: %d\n", average); printf("Largest number: %d\n ", largest); printf("Smallest number: %d\n ", smallest); }//end main