Programma java
ciao, devo scrivere un programma in java che crei una matrice i cui valori sono tutti 1 nella prima riga, 2 nella seconda, 3 nella terza ecc ecc...
Esempio:
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
io l'ho fatto (codice postato di seguito) ma mi compaiono delle righe composte da tutti 0 che tra l'altro sono di più di quelle che dovrebbe avere la matrice.
dichiaro una matrice di 2 righe e 11 colonne ma me la stampa di 4 righe! dove sbaglio?
CODICE:
public class vettore_numeri_colonna {
public static void main(String[] args) {
int M[][]= new int[2][11];
for(int riga=0; riga
{int val=1;
for(int col=0; col
{
M[riga][col]=val;
if(val
}
//GLI DICO DI ASSEGNARE TUTTI 1 ALLAPRIMA COLONNA BLA BLA BLA
for(int i=0; i
for(int j=0; j
System.out.print(M[j]+" ");
}
System.out.println();
//FUNZIONE DI STAMPA DELLA MATRICE
}
}
}
}
Esempio:
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
io l'ho fatto (codice postato di seguito) ma mi compaiono delle righe composte da tutti 0 che tra l'altro sono di più di quelle che dovrebbe avere la matrice.
dichiaro una matrice di 2 righe e 11 colonne ma me la stampa di 4 righe! dove sbaglio?
CODICE:
public class vettore_numeri_colonna {
public static void main(String[] args) {
int M[][]= new int[2][11];
for(int riga=0; riga
for(int col=0; col
M[riga][col]=val;
if(val
//GLI DICO DI ASSEGNARE TUTTI 1 ALLAPRIMA COLONNA BLA BLA BLA
for(int i=0; i
}
System.out.println();
//FUNZIONE DI STAMPA DELLA MATRICE
}
}
}
}
Risposte
Ciao,
nel codice ti complichi un po' la vita, l'if con M[0], e perchè mai?
ti consiglio di salvarti i valori "riga" e "col" e li utilizzi come costanti, e le variabili "riga" e "col" le sostituisci con "i" e "j" utilizzando "j" come valore da salvare nell'array visto che salvi valori crescenti; "j" incrementa nel ciclo for. In codice:
Che poi te hai scritto il codice corretto con System.out.print, che ti risolve il problema. Vedi se comprendi, è semplice
PS: utilizza i tag [code] la prossima volta, così è più chiaro il codice che scrivi
nel codice ti complichi un po' la vita, l'if con M[0], e perchè mai?
ti consiglio di salvarti i valori "riga" e "col" e li utilizzi come costanti, e le variabili "riga" e "col" le sostituisci con "i" e "j" utilizzando "j" come valore da salvare nell'array visto che salvi valori crescenti; "j" incrementa nel ciclo for. In codice:
int righe =2; int colonne = 11; int[][] M = new int[righe][colonne]; for(int i = 0; i<righe;i++){ for(int j = 0; j<colonne;j++){ M[i][j] = j+1; } }
Che poi te hai scritto il codice corretto con System.out.print, che ti risolve il problema. Vedi se comprendi, è semplice

PS: utilizza i tag [code] la prossima volta, così è più chiaro il codice che scrivi

ho modificato il codice facendo come mi dici e la questione delle dimensioni l ho risolta. però i valori nella matrice non sono quelli che dovrebbero essere. ho provato più volte a compilarlo e ottengo sempre la stessa matrice. ho provato a farlo io facendo tutti i cicli e secondo me con la logica ci sono... perchè mi stampa 1° e 2é colonna con valori 0?
import java.io.*; public class vettore_numeri_colonna { public static void main(String[] args) { int righe=3; int col=7; int M[][]= new int[righe][col]; for(int i=0; i<righe; i++){ for(int j=0; j<col; j++) M[i][j]=j++; } //FUNZIONE DI STAMPA DELLA MATRICE for(int i=0; i<M.length; i++){ for(int j=0; j<M[0].length; j++){ System.out.print(M[i][j]+" "); } System.out.println(); } } }
prova a modificare:
M[j]=j++;
con
M[j]=j+1;
M[j]=j++;
con
M[j]=j+1;