Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema array

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2016
    Messaggi
    4

    Problema array

    Ciao a tutti
    Devo creare un programma java vi metto il testo:

    Data una classe di N studenti inserisci i loro nomi e la loro età in una struttura idonea. Calcola poi la media delle età e il nome di chi è più giovane.


    Carico quello che sono riuscito a fare ( io ho aggiunto anche il massimo e la media)

    codice:
    import java.util.*;
    public class paralEta
    { public static void main (String args[]){
        int i, somma=0, min=0, max=0;
        int eta []=new int [3];
        String nome []=new String [3];
        double media;
        Scanner tastiera = new Scanner (System.in);
        String nomemin=nome[0],nomemax=nome[0];
        
        
        for (i=0; i<nome.length; i++){
            System.out.println ("Inserisci il nome del "+(i+1)+"° studente");
            nome[i]=tastiera.nextLine();
            System.out.println ("Inserisci l'età del "+(i+1)+" studente");
            eta[i]=tastiera.nextInt();
            tastiera.nextLine();
            somma=somma+eta[i];
            {if(eta[i]>max)
                max=eta[i];
                nomemax=nome[i];}
        }
    
    
        
        media=somma/3;
        System.out.println ("La media delle età dei ragazzi è "+media);
        
        for (i=0; i<nome.length; i++){
            {if(eta[i]>min)
               min=eta[i];
               nomemin=nome[i];}
            }
            
        System.out.println ("Il ragazzo con l'età minore è "+nomemin);    
        System.out.println ("Il ragazzo con l'età maggiore è "+nomemax);
       
      }
        }
    Ultima modifica di LeleFT; 14-04-2016 a 17:41 Motivo: Aggiunti i tag CODE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Java ha un forum a sé stante.
    Inoltre, il codice va postato all'interno degli appositi tag CODE, in modo da mantenere formattazione ed indentazione.

    Sposto la discussione e aggiungo i tag CODE.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da enbe Visualizza il messaggio
    Carico quello che sono riuscito a fare ( io ho aggiunto anche il massimo e la media)
    Ad occhio, tecnicamente "quasi" tutto giusto. È sbagliato il if(eta[i]>min) che in sostanza è uguale al massimo, ovvero non stai cercando il minimo ma il contrario!

    Non è comunque buonissimo come design/stile ma è comprensibile per il livello sicuramente iniziale.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da enbe Visualizza il messaggio
    Carico quello che sono riuscito a fare ( io ho aggiunto anche il massimo e la media)
    Ad occhio, tecnicamente "quasi" tutto giusto. È sbagliato il if(eta[i]>min) che in sostanza è uguale al massimo, ovvero non stai cercando il minimo ma il contrario!

    Non è comunque buonissimo come design/stile ma è comprensibile per il livello sicuramente iniziale.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2016
    Messaggi
    4
    L'ho sistemato.. grazie
    Adesso la media e il massimo risultano ma quando lancio il programma per il minimo mi da 'null'
    Qual'è il problema?

    codice:
    public class paralEta
    { public static void main (String args[]){
        Scanner tastiera = new Scanner (System.in);
        
        int i, somma=0;
        int eta []=new int [5];
        String nome []=new String [5];
        double media;
        String nomemin=nome[0],nomemax=nome[0];
        int  min=eta[0], max=eta[0];
        
        
        for (i=0; i<nome.length; i++){
            System.out.println ("Inserisci il nome del "+(i+1)+"° studente");
            nome[i]=tastiera.nextLine();
            System.out.println ("Inserisci l'età del "+(i+1)+" studente");
            eta[i]=tastiera.nextInt();
            tastiera.nextLine();
            somma=somma+eta[i];
            if(eta[i]>max){
                max=eta[i];
                nomemax=nome[i];}
        }
    
    
        
        media=somma/nome.length;
        System.out.println ("La media delle età dei ragazzi è "+media);
        
        for (i=0; i<nome.length; i++){
            if(eta[i]<min){
               min=eta[i];
               nomemin=nome[i];}
            }
            
        System.out.println ("Il ragazzo con l'età minore è "+nomemin);    
        System.out.println ("Il ragazzo con l'età maggiore è "+nomemax);
       
      }
    }
    Ultima modifica di LeleFT; 14-04-2016 a 18:31 Motivo: Aggiunti i tag CODE

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Inoltre, il codice va postato all'interno degli appositi tag CODE, in modo da mantenere formattazione ed indentazione.
    Mi ripeto... e aggiungo l'esempio:

    [CODE]
    tuo codice
    [/CODE]


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da enbe Visualizza il messaggio
    Adesso la media e il massimo risultano ma quando lancio il programma per il minimo mi da 'null'
    Qual'è il problema?

    int min=eta[0], max=eta[0];
    In quel momento, mentre inizializza min, eta[0] contiene 0, il valore di default per gli elementi in un array di int.
    E siccome tu inserisci valori maggiori, un minimo NON lo trovi (quindi nomemin resta a null, perché tra l'altro idem nome[0] all'inizio vale null).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.