Autor Tema: Ejemplo código en c (lenguajeC) que pida datos a usuario y calcule la media  (Leído 2510 veces)

freddy91

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Hola a todos, hace nada que empece a programar en c y estaba haciendo un programa y no sé como arreglarlo. El código en cuestión es este:

Código: [Seleccionar]
#include <stdio.h>
int main()
{
int n,contador;
float suma,media;

suma=0;
contador=0;
n=1;
printf ("Para salir introduzca 0 o un numero negativo\n");
while ((n!=0)&&(n>0)){
printf("Introduzca un numero \n");
scanf("%i",&n);
suma=suma+n;
contador++;
}
 
media=suma/(contador);
printf("La media es %f",&media);

return 0;
}
   

Lo que debería hacer es la media de n números y que cuando se introduzca un numero negativo o cero se parara y haga la media, pero el problema es que cuando introduzco el 0 o un negativo me pone que la media es 0. ¿Qué he hecho mal?
« Última modificación: 12 de Octubre 2016, 13:53 por Alex Rodríguez »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Problema en un código en c
« Respuesta #1 en: 02 de Octubre 2016, 23:26 »
Hola freddy91.

El error en tu código está en esta línea:

Código: [Seleccionar]
printf("La media es %f",&media);
te sobre el simbolo &.

Aparte, el código se podría mejorar, en el bucle "while" evalúas "((n!=0)&&(n>0))" y en realidad la primera condición de estas no es necesarias, puesto que si se introduce el "0" como valor, ya se está incumpliendo la condición "n>0".

Ya que estás en los inicios de la programación, te recomiendo este curso/tutorial en LenguajeC:

https://www.aprenderaprogramar.es/index.php?option=com_content&view=category&id=82&Itemid=210

Y si estás interesado en algún otro, aquí tienes más:

https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=57&Itemid=86

Saludos.  ;D

nia

  • Sin experiencia
  • *
  • Mensajes: 6
    • Ver Perfil
Re:Problema en un código en c
« Respuesta #2 en: 04 de Octubre 2016, 15:36 »
Buenas tardes,

Me gustaría añadir a lo que ha comentado pedro,, que creo que tiene razón.

Yo añadiria una variable aparte para controlar el while y preguntar cada vez que introduces un número si desea continuar introcuciendo números. Si es que si, no sales del while, si es no saldrás del bucle y te calculará la media de los números que has ido introduciendo.

O preguntar al principio cuantos números quiere introducir el usuario para realizar la media.

Ya que tal como lo tienes ahora, en la variable suma se le suma el número 0 o negativo que hace parar el bucle y el contador suma +1; asi que la media no sale correctamente.

Espero haber ayudado y dado alguna idea.

Un saludo.  :)

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".