Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Errori sconosciuti

  1. #1

    Errori sconosciuti

    Ciao a tutti,
    stavo provando a scrivere un semplice programma che ordina in modo crescente tre numeri, giusto per allenarmi e fissare le conoscenze. Al momento della prima compilazione il terminale segnava 48 errori, ma modificando due cosette da nulla sono diventati 27 (comunque tantissimi per la lunghezza del file). Il problema è che la maggior parte di questi sono errori del tipo
    codice:
    Organizzatore3.java:32: error: ')' expected
            for (float x : n_ordinati)
    che non hanno palesemente senso Non riesco a trovare il vero errore che fa sballare tutto, qualcuno mi può aiutare? Il listato è il seguente:
    codice:
    public class Organizzatore3
    {
        public static void Or3(float[3] numeri)
        {
            System.out.println("I valori da ordinare sono: ");
            for (float q : numeri)
            {
                System.out.print(q + " ");
            }
            float[] n_ordinati = new float[3];
            for (int i = 0; i < 3; i++)
            {
                switch (numeri[i])
                {
                    case Math.max(numeri):
                    {
                        n_ordinati[2] = numeri[i];
                        break;
                    }
                    case Math.min(numeri):
                    {
                        n_ordinati[0] = numeri[i];
                        break;
                    }
                    default:
                    {
                        n_ordinati[1] = numeri[i];
                    }
                }
            }
            System.out.println("I valori ordinati sono: ");
            for (float x : n_ordinati)
            {   
                System.out.print(n_ordinati[x] + " ");
            }   
        }
        
        public static void main(String[] args)
        {
            float[] nums = {22.4, 15.6, 0.123}
            Or3(nums)
        }
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    codice:
     for (float x : n_ordinati)
            {   
                System.out.print(n_ordinati[x] + " ");
            }
    x è già l'i-esimo elemento.


    System.out.print(x + " ");
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Originariamente inviato da Alex'87
    codice:
     for (float x : n_ordinati)
            {   
                System.out.print(n_ordinati[x] + " ");
            }
    x è già l'i-esimo elemento.


    System.out.print(x + " ");
    Oddio è vero che errore stupido! Non me ne ero accorto Il problema persiste però, il compilatore segna ancora 27 errori!

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Riguarda come hai dichiarato il parametro "numeri".
    E nel case non penso proprio che tu possa usare espressioni, ma solo valori costanti.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Originariamente inviato da Alex'87
    Riguarda come hai dichiarato il parametro "numeri".
    E nel case non penso proprio che tu possa usare espressioni, ma solo valori costanti.
    ho sostituito la struttura switch con la seguente struttura if
    codice:
    if (numeri[i] == Math.max(numeri)
                    n_ordinati[2] = numeri[i];
                else if (numeri[i] == Math.min(numeri)
                    n_ordinati[0] = numeri[i];
                else
                    n_ordinati[1] = numeri[i];
    ma non cambia nulla!

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    55
    Usare un IDE aiuta.
    Vedo ad esempio:
    codice:
    if (numeri[i] == Math.max(numeri)
    manca la chiusura della parentesi.
    Nella firma del metodo Or3 dovresti scrivere float[] e non float[3]
    I metodi Math.min e Math.max hanno in input due parametri (due numeri) e non un array.
    Per definire un numero float, devi specificare il "tipo" float e aggiungere il ";" alla fine:
    codice:
    float[] nums = {22.4f, 15.6f, 0.123f};

  7. #7
    Originariamente inviato da borras
    Usare un IDE aiuta.
    Vedo ad esempio:
    codice:
    if (numeri[i] == Math.max(numeri)
    manca la chiusura della parentesi.
    Nella firma del metodo Or3 dovresti scrivere float[] e non float[3]
    I metodi Math.min e Math.max hanno in input due parametri (due numeri) e non un array.
    Per definire un numero float, devi specificare il "tipo" float e aggiungere il ";" alla fine:
    codice:
    float[] nums = {22.4f, 15.6f, 0.123f};
    Tutti errori da super principiante in poche parole! ahahah
    Per la questione dei metodi lo sospettavo, ma speravo ritornassero il numero maggiore/minore tra tanti, non solo tra due. Unica cosa, perchè serve il suffisso f dopo i numeri? Ho già dichiarato che devono essere float

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da TrashcanDLM
    Unica cosa, perchè serve il suffisso f dopo i numeri? Ho già dichiarato che devono essere float
    Perchè, di default, un numero con la virgola è considerato una costante double e non float.
    Vedi questa pagina, in dettaglio il paragrafo "Floating-Point Literals"

    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

  9. #9
    Originariamente inviato da LeleFT
    Perchè, di default, un numero con la virgola è considerato una costante double e non float.
    Vedi questa pagina, in dettaglio il paragrafo "Floating-Point Literals"

    Ciao.
    Grazie mille

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.