• Domingo 12 de Mayo de 2024, 21:08

Autor Tema:  Re: media aritmetica  (Leído 897 veces)

essios

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
    • http://www.essios.es.vg
Re: media aritmetica
« en: Domingo 13 de Abril de 2003, 21:47 »
0
antes de comenzar, desde aquí pido un monumento a la figura de juank, que está en todas.

estaba yo delante de mi pc, haciendo un par de algoritmos (por ahí se empieza), y se me planteó el siguiente: introducir numeros por el teclado hasta que se teclee el 0, e imprimir la media aritmetica de los negativos y positivos.

pero no consigo encontrar el fallo a la hora de hallar la media aritmetica.

#include <stdio.h>

void main()
{

   int numero=0;

   int sumapositivos=0;
   int contadorpositivos=1;
   int sumanegativos=0;
   int contadornegativos=1;

   float mediapositivos=0;
   float medianegativos=0;

   printf("escribe un n£mero  ");
   scanf("%d",&numero);

   while(numero!=0)
   {
      printf("escribe un n£mero   ");
      scanf("%d",&numero);

      if(numero>0)
      {
       sumapositivos+=numero;
       contadorpositivos++;
      }
      else
      {
       sumanegativos+=numero;
       contadornegativos++;
      }
   }

   printf("la media de los positivos es  %dn",mediapositivos);
   printf("la media de los negativos es  %d",medianegativos);

   mediapositivos=sumapositivos/contadorpositivos;
   medianegativos=sumanegativos/contadornegativos;
}


pd.-a todos aquellos que escriben pidiendo tutores y demás ejercicios para empezar a programar, creo que éstos son los más indicados.
---------------------------------------------------------
no busques el como, sino el por qué

desorden

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
media aritmetica
« Respuesta #1 en: Lunes 14 de Abril de 2003, 01:12 »
0
Espero que me de tiempo a escribir ésto antes que Juank:P

Fijate en dos cosas:

El primer número introducido -antes de entrar en el bucle while- no lo incluyes en el sumatorio sumadepositivos.

Al calcular la media tendrás que convertir los valores int a float, de esta manera:
 
Código: Text
  1.  
  2. mediapositivos = (float) sumapositivos / (float) contadorpositivos;
  3. medianegativos = (float) sumanegativos / (float) contadornegativos;
  4.  
  5.  
Y tienes que calcularla antes de mostrarla por pantalla -despiste:)-
Y cuidado, void main() no se considera una forma correcta. Debe ser int main(void).
desorden