Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 12 su 12

Hybrid View

  1. #1
    Vedi se ti è chiaro (se ho ben capito il problema):

    codice:
    private static void richiediValori(int[][] matrice) {
            
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
            int scelta = 0;
            
            do {
                try {
                    System.out.print("\nInserisci 1 per stampare una riga, 2 per stampare una colonna (0 per terminare): ");
                    String line = bufferedReader.readLine();
                    scelta = Integer.parseInt(line);
                    if(scelta == 1 || scelta == 2) {
                        elaboraScelta(scelta,matrice);
                    } 
                    else if(scelta == 0) {
                        System.out.println("\nApplicazione terminata");
                    }
                    else {
                        System.out.println("\nInput errato, ritenta...");
                    }
                }catch(NumberFormatException e) {
                    System.out.println("\nInput errato, ritenta...");
                    continue;
                }catch(IOException e) {
                    System.out.println("\nInput errato, ritenta...");
                    continue;
                }
            }while(scelta != 0);
        }
        
        private static void elaboraScelta(int scelta, int[][] matrice) {
            
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
            int opt = 0;
            
            do {
                try {
                    
                    if(scelta == 1) {
                        System.out.print("\nInserisci il numero della riga da stampare (-1 per terminare): ");
                        String line = bufferedReader.readLine();
                        opt = Integer.parseInt(line);
                        stampaRiga(opt,matrice);
                        return;
                    } 
                    else {
                        System.out.print("\nInserisci il numero della colonna da stampare (-1 per terminare): ");
                        String line = bufferedReader.readLine();
                        opt = Integer.parseInt(line);
                        stampaColonna(opt,matrice);
                        return;
                    } 
                    
                }catch(NumberFormatException e) {
                    System.out.println("\nInput errato, ritenta...");
                }catch(IOException e) {
                    System.out.println("\nInput errato, ritenta...");
                }
            }while(opt != -1);
        }
        
        private static void stampaRiga(int riga, int[][] matrice) {
            if(riga >= matrice.length) {
                System.out.println("\nNumero riga non esistente");
            }
            for(int i=0; i<matrice.length; i++) {
                for(int j=0; j<matrice[i].length; j++) {
                    if(i == riga) { 
                        System.out.print("\t" + matrice[i][j]);
                    }
                }
            }
        }
        
        private static void stampaColonna(int colonna, int[][] matrice) {
            if(colonna >= matrice[0].length) {
                System.out.println("\nNUmero colonna non esistente");
            }
            for(int i=0; i<matrice.length; i++) {
                for(int j=0; j<matrice[i].length; j++) {
                    if(j == colonna) { 
                        System.out.print("\t" + matrice[i][j]);
                    }
                }
            }
        }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Se devo stampare una riga o una colonna e so già quale riga/colonna... perchè scorrere TUTTA la matrice, aspettando di arrivare sulla riga/colonna scelta?


    codice:
        private static void stampaRiga(int riga, int[][] matrice) {
            if(riga >= matrice.length) {
                System.out.println("\nNumero riga non esistente");
            }
            for(int j=0; j<matrice[riga].length; j++) {
                System.out.print("\t" + matrice[riga][j]);
            }
        }
        
        private static void stampaColonna(int colonna, int[][] matrice) {
            if(colonna >= matrice[0].length) {
                System.out.println("\nNUmero colonna non esistente");
            }
            for(int i=0; i<matrice.length; i++) {
                System.out.print("\t" + matrice[i][colonna]);
            }
        }

    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

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 © 2026 vBulletin Solutions, Inc. All rights reserved.