Learning C. Need help on this program

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