Saludos estoy haciendo este programa que me lee varios números y me da la suma, promedio, mayor y menor pero el problema que tengo es con el menor ya que no se como hacerlo sin tener que utilizar un vector, solo con el for 
#include <stdio.h>
#include <stdlib.h>
/*Leer n valores enteros e imprimir la suma, promedio, producto, el mayor y el menor*/
int main()
{
    int cantidad,numero,i,suma=0,producto=1,mayor=0,menor=0;
    float promedio;
    printf("Dame el numero de enteros\n");
    scanf("%d",&cantidad);
    for(i=0;i<cantidad;i++)
    {
        printf("Numero\n");
        scanf("%d",&numero);
        suma+=numero;
        producto*=numero;
        if(numero>mayor)
           mayor=numero;
        else
           menor=numero;
    }
    printf("La suma es: %d\n",suma);
    printf("El producto es: %d\n",producto);
    promedio= (float)suma/cantidad;
    printf("El promedio es: %.2f\n",promedio);
    printf("El mayor es: %d\n",mayor);
    printf("El menor es: %d\n",menor);
    return 0;
}
gracias
			
			
			
				Deja ejemplos de que numeros estas probando y que te devuelve asi te ayudaran mas rapido. Fijate que en tu verificacion if, pones solo > entonces el else tambien es valido para cuando son iguales, tal vez por ahi esta el fallo.
			
			
			
				Hola! creo q con poner if en ves del else alcanza
if(numero<menor)
   menor=numero;
Saludos
PD: no inicialices a menor=0 sino nunca te va a dar bien
			
			
			
				¡Buenas!
Tampoco inicialices mayor a cero, ya que tambien te dara valores no deseados si todos los elementos son negativos.
Tendras que leer el primer dato, asumir que tanto mayor como menor son iguales a este, y luego comparar los sucesivos datos con estos dos.
¡Saludos!