Ayuda programa en c

Ante todo saludar que hace mucho que no digo nada por aqui, y otra cosa es que no sabia donde poner este hilo.

Tengo que hacer una serie de programas para verano y me he atascado con uno es este:

//Media de una serie de numeros que finaliza al introsucir 999

#include <stdio.h>
#include <conio.h>


main()
{
int num;
int media;
int cont;

do
{
puts("introduce numeros, para finalizar <999>");
fflush(stdin);
scanf("%d",&num);

media+=num;
cont++;


}while(num != 999);

media/=cont;
puts("La media es:");
fflush(stdin);
printf("%d",media);

getchar();
}


La media me sale 0 meta lo que meta por¿?¿? veis el fallo que me he atorao y eso que es de los faciles

Gracias y un SALUDO.
1) inicia los valores a float, pq el resultado de la media seguro q va a ser la mayor parte de las veces un numero con decimales.
2)inicia los valores a 0, cont, num y media pq si no vas a estar sumando lo q haya en memoria en el momento que inicias la variable
3) no necesitas fflush(stdin); antes del printf del final

animo!
En el bucle si entras 999 lo sumaria a media y sumaria uno contador y luego saldría del bucle ya. Asi te hace mal la media porque el 999 es para salir y te lo incluye en los números.

Saludos
y como puedo hacer para ke no me cuente el 999 y me sume uno a contador he intentado con un "if" pero nada de nada


EDITO: lo he solucionado pero esta en plan chapucero y nada bonito me ha quedado asi
//Media de una serie de numeros que finaliza al introsucir 999

#include <stdio.h>
#include <conio.h>


main()
{
float num=0;
float media=0;
int cont=0;

do
{
puts("introduce numeros, para finalizar <999>");
fflush(stdin);
scanf("%f",&num);
media+=num;
cont++;
}while(num != 999);

cont--;
media-=999;

media/=cont;
fflush(stdin);
puts("La media es:");

printf("%2.f",media);

getchar();
}
Cambia el do_while por un while o mete un if dentro del bucle.

Por cierto, la etiqueta code del foro está para algo.
substituye las lineas de dentro del bucle que ponen:

media+=num;
cont++;


por

if (num!=999) {
media+=num;
cont++;
}


y quita las dos lineas posteriores de

cont--;
media-=999;


Edit:
Tambien puedes cambiar
puts("La media es:");
printf("%2.f",media);


por

printf("La media es: %2.f",media);
Gracias a todos ya esta solucionado, ya esta "bonito"



Un SALUDO
6 respuestas