Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    aiuto problema inizializzazione: trovare il più vecchio e il più giovane tra 3 nomi

    eccomi qua, questa volta sono le stringhe a darmi problemi..
    ho scritto un programma che dati 3 nomi e relative età, dovrebbe dire chi è il più vecchio e chi il più giovane.

    se non inizializzo le stringhe "nome1", "nome2"e "nome3", mi dà errore e dice che devo inizializzarle.

    ma se le inizializzo (o meglio se lascio a netbeans di inizializarmele in automatico come correzione)
    (nome1 = null, nome2 =null, nome3 = null)

    i risultati saranno che il più vecchio è "null" e il più giovane anche!

    devo inizializzare in maniera diversa o ho fatto qualche errore più grande??






    codice:
    /* * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package vecchiogiovane;
    import java.io.*;
    /**
     *
     * @author filipporezzadore
     */
    public class Vecchiogiovane {
    
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws Exception{
            
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));    // TODO code application logic here
       String nome1 = null;
        int eta1;
        String nome2 = null;
        int eta2;
        String nome3 = null;
        int eta3;
        String oldest;
        String youngest;
        int etamax = 0;
        int etamin = 0;
        
        
        System.out.println("ins first name:");
        
        String line = input.readLine();
        
        System.out.println("ins first age:");
        
        line = input.readLine();
        eta1 = Integer.parseInt(line);
        
        
        
        
        System.out.println("ins second name:");
        
        line = input.readLine();
        
        System.out.println("ins second age:");
        
        line = input.readLine();
        eta2 = Integer.parseInt(line);
        
        
        
        
        System.out.println("ins third name:");
        
        line = input.readLine();
        
        System.out.println("ins third age:");
        
        line = input.readLine();
        eta3 = Integer.parseInt(line);
        
        
        
        if (eta1 > eta2)
            eta1 = etamax;
        
        if (eta3 > etamax)
            eta3 = etamax;
        
        if (eta1 < eta2)
            eta1 = etamin;
        
        if (eta3 < etamin)
            eta3 = etamin;
        
        
        
        if (etamax == eta1)
                oldest = nome1;
        
        else if (etamax == eta2)
            oldest = nome2;
        
        else 
            oldest = nome3;
        
        
        
        if (etamin == eta1)
        youngest = nome1;
        
        else if (etamin == eta2)
            youngest = nome2;
        
        else 
            youngest = nome3;
        
        
        System.out.println("oldest is:" + oldest);
        System.out.println("youngest is:" + youngest);
        
        
        
        
            
        
        
        
        }
        
    }




    esecuzione:




    codice:
    run:
    ins first name:
    aldo
    ins first age:
    35
    ins second name:
    mino
    ins second age:
    67
    ins third name:
    carlo
    ins third age:
    32
    oldest is:null
    youngest is:null
    BUILD SUCCESSFUL (total time: 25 seconds)
    
    
    
    grazie mille ancora!!

  2. #2
    Come per il precedente post sbagli ad utilizzare l'operatore di assegnamento cioè eta1 = etamax per te sicuramente vuol dire di assegnare il valore di eta1 a etamax ma invece è il contrario

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Oltre a quanto correttamente detto da francesco.muia, c'è un altro problema.
    Tu leggi il nome della persona nella variabile "line" e poi... non ne fai nulla. Lo butti via... non lo stai assegnando alle variabili nome1, nome2 e nome3...


    codice:
    System.out.println("ins first name:");
    
    String line = input.readLine();   // "line" contiene il nome della persona
    
    System.out.println("ins first age:");
    
    line = input.readLine();   // Ora line contiene la sua età... il nome è andato perso
    
    ... // E via via per tutti gli altri

    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

  4. #4
    ahn.. così è corretto?:

    codice:
    /* * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package vecchiogiovane;
    import java.io.*;
    /**
     *
     * @author filipporezzadore
     */
    public class Vecchiogiovane {
    
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws Exception{
            
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));    // TODO code application logic here
            
           
       String nome1;
        int eta1;
            
        String nome2 = null;
        int eta2;
            
        String nome3 = null;
        int eta3;
        String oldest;
        String youngest;
        int etamax = 0;
        int etamin = 0;
        
        
        System.out.println("ins first name:");
        
        String line = input.readLine();
        
        System.out.println("ins first age:");
        
        line = input.readLine();
        eta1 = Integer.parseInt(line);
        
        
        
        
        System.out.println("ins second name:");
        
        line = input.readLine();
        
        System.out.println("ins second age:");
        
        line = input.readLine();
        eta2 = Integer.parseInt(line);
        
        
        
        
        System.out.println("ins third name:");
        
        line = input.readLine();
        
        System.out.println("ins third age:");
        
        line = input.readLine();
        eta3 = Integer.parseInt(line);
        
        
        
        if (eta1 > eta2)
            etamax = eta1;
        
        if (eta3 > etamax)
            etamax = eta3;
        
        if (eta1 < eta2)
            etamin = eta1;
        
        if (eta3 < etamin)
            etamin = eta3;
        
        
        
        if (etamax == eta1)
                oldest = nome1;
        
        else if (etamax == eta2)
            oldest = nome2;
        
        else 
            oldest = nome3;
        
        
        
        if (etamin == eta1)
        youngest = nome1;
        
        else if (etamin == eta2)
            youngest = nome2;
        
        else 
            youngest = nome3;
        
        
        System.out.println("oldest is:" + oldest);
        System.out.println("youngest is:" + youngest);
        
        
        
        
            
        
        
        
        }
        
    }
    
    
    
    ma mi dà ancora "oldest = null" e "youngest = null"
    
    
    
    
    
    codice:
    run:
    ins first name:
    carlo
    ins first age:
    87
    ins second name:
    miky
    ins second age:
    67
    ins third name:
    aldo
    ins third age:
    45
    oldest is:null
    youngest is:null
    BUILD SUCCESSFUL (total time: 14 seconds)

    penso sia un problema di inizializzazione


    grazie ancora

  5. #5
    non avevo visto la tua risopsta Lele.. grazie
    Ultima modifica di Filippo11; 14-01-2015 a 13:56

  6. #6
    siete indispensabili!!

    ecco il codice corretto:

    codice:
    /* * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package vecchiogiovane;
    import java.io.*;
    /**
     *
     * @author filipporezzadore
     */
    public class Vecchiogiovane {
    
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws Exception{
            
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); 
        
           // TODO code application logic here
            
           
       String nome1;
        int eta1;
            
        String nome2;
        int eta2;
            
        String nome3;
        int eta3;
        String oldest;
        String youngest;
        int etamax = 0;
        int etamin = 0;
        
        
        System.out.println("ins first name:");
        
        String line = input.readLine();
        nome1 = line;
        
        System.out.println("ins first age:");
        
        line = input.readLine();
        
        eta1 = Integer.parseInt(line);
        
        
        
        
        System.out.println("ins second name:");
        
        line = input.readLine();
       nome2 = line;
               
        
        System.out.println("ins second age:");
        
        line = input.readLine();
        eta2 = Integer.parseInt(line);
        
        
        
        
        System.out.println("ins third name:");
        
        line = input.readLine();
        nome3 = line;
        
        System.out.println("ins third age:");
        
        line = input.readLine();
        eta3 = Integer.parseInt(line);
        
        
        
        if (eta2 > eta1)
            etamax = eta2;
        
        
        if (eta3 > etamax)
            etamax = eta3;
            
                    
        
        if (eta2 > eta1)
            etamin = eta1;
        
        if (eta3 < etamin)
            etamin = eta3;
        
        
        if (etamax == eta1)
                oldest = nome1;
        
        else if (etamax == eta2)
            oldest = nome2;
      
        else 
            oldest = nome3;
        
        if (etamin == eta1)
        youngest = nome1;
        
        else if (etamin == eta2)
            youngest = nome2;
        
        else 
            youngest = nome3;
        
        System.out.println("oldest is:" + oldest);
        System.out.println("youngest is:" + youngest);
         }
    }
    ciao!

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.