Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Array Java

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2015
    residenza
    Reggio Calabria
    Messaggi
    1

    Array Java

    Salve a tutti, sono nuovo di qui, ma volevo chiedervi se potevate aiutarmi con questo esercizio:
    scrivere un array che faccia la media di tutti i numeri pari inseriti;
    io ho fatto così, ma non so dove sia l'errore:

    public class mediapari {
    public static void main(String[]args){
    int x[]={2,4};
    int i;
    int somma=0 ;
    int media=0;
    int cont=0;
    for(i=0; i<x.length;i++){
    if(x[i]%2==0){
    cont++;
    somma =somma+x[i];
    }
    System.out.println("somma=" +somma);
    for (i=0; i<x.length; i++){
    if (x[i]%2==0){
    cont++;
    }
    media=somma/ x.length;
    }
    }
    System.out.println("media=" +media);
    }
    }
    grazie mille per l'aiuto

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    La prima cosa che si dovrebbe insegnare e' la differenza fra Java e javaScript

    Ti sposto
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Ciao e benvenuto

    Intanto ti consiglio di usare i tag [ CODE ] [/CODE] prima e dopo il codice inserito per formattarlo meglio.

    L'errore è che hai fatto (immagino per sbaglio) un ciclo annidato, usando tra l'altro lo stesso contatore (i) per il ciclo esterno e interno.
    Infatti indentando meglio il codice vedrai che il tuo ciclo for è così costruito:

    codice:
    for(i=0; i<x.length;i++)
    {
        if(x[i]%2==0)
        {
            cont++;
            somma =somma+x[i];
        }
        System.out.println("somma=" +somma);
        for (i=0; i<x.length; i++)
        {
            if (x[i]%2==0)
            {
                cont++;
            }
            media=somma/ x.length;
        } 
    }
    Quindi somma è pari a 2 dopo il primo if, ma poi entri nel ciclo interno ed esci con i=2, quindi non rientri più nel ciclo esterno e somma resta 2 fino alla fine, invece di diventare 6 (tra l'altro la media dovresti calcolarla fuori dai cicli)
    Ultima modifica di Ansharja; 06-09-2015 a 19:12

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.