Programma java

talitadiodati90
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
}
}
}
}

Risposte
hamming_burst
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:

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 :-)

talitadiodati90
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();
		}
}
}

Umby2
prova a modificare:

M[j]=j++;

con

M[j]=j+1;

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.