domingo, 1 de enero de 2017

Arrays: Media Positivos y Negativos

Inicializa un array con 10 números aleatorios comprendidos entre el -50 y el 50 mostrándolos por pantalla.
A continuación,utilizando otro bucle, realizar la media de los números positivos, la media de los negativos y la suma total.
Y finalmente muestra las medias y la suma total.


Ejemplo:
13 16 -30 -38 0 -47 -27 48 45 -43

Media Positivos: 30.50
Media Negativos: -30.83
Suma Total: -63


SOLUCIÓN EN JAVA:
package arraymediapositivosnegativos;

public class ArrayMediaPositivosNegativos {
    
 public static void main(String[] args) {
        int numeros[]=new int[10];
        int i, sumaTotal=0, positivos=0, negativos=0;
        float mediaPositivos=0, mediaNegativos=0;
        
        //Primero lleno el array con números aleatorios del 1 al 100
        for (i=0;i<numeros.length;i++){
            numeros[i]=(int)(Math.random()*101-50);
            System.out.print(numeros[i]+" ");
        }
        System.out.println();
        //Ahora hago el recorrido del array actualizando las medias y el total
        //según sea el valor del elemento del array evaluado en cada iteración
        for (i=0;i<numeros.length;i++){
            sumaTotal+=numeros[i];
            if (numeros[i]>0){
                mediaPositivos+=numeros[i];
                positivos++;
            }
            else {
                mediaNegativos+=numeros[i];            
                negativos++;
            }
        }
        //Ahora tocal calcular las medias reales dividiendo por el número de elementos
        if (positivos>0) mediaPositivos=mediaPositivos/positivos;
        if (negativos>0) mediaNegativos=mediaNegativos/negativos;
        
        //Mostramos los resultados utilizo el formato %.2f para que imprima 2 decimales
        System.out.printf("Media Positivos: %.2f\n",mediaPositivos);
        System.out.printf("Media Negtivos: %.2f\n",mediaNegativos);
        System.out.printf("Suma Total: %d\n", sumaTotal);
    }    
}

No hay comentarios:

Publicar un comentario