Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Inserire spazi tra un array bidimensionale?

    Ciao a tutti, vorrei sapere come si inseriscono gli spazi tra i valori stampati di un array bidimensionale. Mi spiego meglio, io la stampa la faccio così:

    codice:
    for(int i = 1; i < A.length; i++)
    			
    		{
    			
    			for(int j = 1; j < A[i].length; j++)
    			
    			{
    				System.out.print(A[i][j]);
    			}
    			System.out.println();
    Si tratta della stampa di una terna, vorrei stampare i valori cosicché tutti risultino in ordine giacché ora hanno questa visualizzazione:

    1 2 3 4 5 6 7 8 9 10
    2 4 6 8 10 12 14 16 18 20
    3 6 9 12 15 18 21 24 27 30
    4 8 12 16 20 24 28 32 36 40
    5 10 15 20 25 30 35 40 45 50
    6 12 18 24 30 36 42 48 54 60
    7 14 21 28 35 42 49 56 63 70
    8 16 24 32 40 48 56 64 72 80
    9 18 27 36 45 54 63 72 81 90
    10 20 30 40 50 60 70 80 90 100

    PS:

    Inoltre vorrei far si che l'utente stampi soltanto i valori di una determinata riga e colonna, ovviamente sotto richiesta:
    inserisci riga:
    inserisci colonna:

    com'è possibile farlo?
    ?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Stampa usando System.out.printf() e usa lo specificare %s indicando il padding (dovrebbe essere %Xs dove X è il numero di caratteri che formano la "colonna")
    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
    printf?
    Ho provato ma da errore. Mi fai un esempio pratico?
    ?

  4. #4
    Vedi se ti piace questo risultato:

    codice:
    private static void stampaMatriceConSpazi(int[][] matrice) {
    		for(int i=0; i<matrice.length; i++) {
    			for(int j=0; j<matrice[i].length; j++) {
    				if(j != 0) {
    					System.out.print("\t" + matrice[i][j]);
    				}
    				else {
    					System.out.print(matrice[i][j]);
    				}
    			}
    			System.out.println("\n");
    		}
    	}

  5. #5
    Per lo spazio ci siamo solo che \n fuori dai cicli mette tutto in verticale, dovrebbe andare a capo raggiunto il 10.
    ?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da wormd Visualizza il messaggio
    printf?
    Ho provato ma da errore. Mi fai un esempio pratico?
    Due considerazioni:

    1) Se non posti quello che hai provato e non dici che errore ti dà, difficilmente qualcuno ti potrà dare risposte utili.

    2) Che versione di JDK stai usando? Il metodo printf() di PrintStream è stato introdotto a partire da Java 5, se stai usando una versione precedente, non la puoi usare.


    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
    Guarda che \n è fuori dal ciclo più interno ed interno a quello più esterno. Non mette assolutamente tutto in verticale..
    Ultima modifica di Javino89; 20-02-2014 a 19:39

  8. #8
    Ho creato un array bidimensionale, ho scritto il codice per stampare i valori generati in precedenza ma purtroppo escono attaccati, tutto qua.

    Ok ragazzi ho risolto seguendo la soluzione di javino.

    Ora vorrei sapere come faccio a stampare il valore di una colonna e riga particolare.
    Ultima modifica di wormd; 20-02-2014 a 19:42
    ?

  9. #9
    1) Richiedi i valori (prima se vuole stampare una riga o una colonna, poi ulteriori valori per capire quale riga o quale colonna) all'utente tramite input da tastiera, molto indicativamente:
    codice:
    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
    try {
        String stringScelta = input.readLine();
        int intScelta = Integer.parseInt(stringScelta);
    } catch(IOException e) {
        e.printStackTrace();
    } catch(NumberFormatException e) {
        e.printStackTrace();
    }
    2) Utilizzi i valori inseriti:

    L'utente ha scelto di stampare la riga x:

    codice:
    for(int i=0; i<matrice.length; i++) {
        for(int j=0; j<matrice[i].length; j++) {
            if(i == riga_inserita) { //se la riga corrente (i) è uguale a quella scelta dall'utente
                System.out.print("\t" + matrice[i][j]);
            }
        }
    }
    L'utente ha scelto di stampare la colonna x:

    codice:
    for(int i=0; i<matrice.length; i++) {
        for(int j=0; j<matrice[i].length; j++) {
            if(j == colonna_inserita) { //se la colonna corrente (j) è uguale a quella scelta dall'utente
                System.out.print("\t" + matrice[i][j]);
            }
        }
    }

  10. #10
    Ok, l'ho modificato e gli passo i valori come parametro. Il problema è quando inserisco la riga, mi ricompare il menu con tutte le opzioni e poi mi chiede di inserire la colonna, ovviamente così non funziona. C'è un modo per far leggere riga e colonna senza che di mezzo riappaia il menu?
    ?

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.