Come posso riempire una diagonale secondaria di un array bidimensionale n*n?grazie
Come posso riempire una diagonale secondaria di un array bidimensionale n*n?grazie
Mi sono molto divertito a "rispondere" a questo tuo quesito, ecco qui la soluzione:
codice:namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int rows = 20; int cols = 10; string[,] s = new string[rows, cols]; int col = 0; int colInc = 1; int rowInc = 1; if (rows > cols) rowInc = rows / cols; else colInc = cols / rows; for (int row = 0; row < rows; row+=rowInc) { s[row, col] = "0"; for (int i = 0; i < colInc; i++) s[row, col + i] = "0"; for (int i = 0; i < rowInc; i++) { s[row + i, col] = "0"; } col += colInc; } // Stampa per una verifica for (int row = 0; row < rows; row++) { for (col = 0; col < cols; col++ ) { string t = s[row, col]; Console.Write("{0}", string.IsNullOrEmpty(t) ? " " : t); } Console.WriteLine(); } Console.ReadLine(); } } }![]()
Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
DOT.NET Addicted since 2006 (My Blog)
graziee mille dell'aiuto spero di capire come si fà adesso![]()
![]()
Spero di poterti rispondere in modo tale da farti capire qualcosa, non è complicato.
Data una matrice fatta da N righe ed M colonne, tra queste ho impostato una regola:
M ed N possono essere l'una multipla dell'altra.
Perchè? Prova a fare una matrice [5,7] o contraria, non sapresti
dove inserire la diagonale avendo a che fare con numeri non multipli,
se invece provi con [5,15] o [7,14] già funziona.
Ora, dati due numeri "INCREMENTO_RIGA" ed "INCREMENTO_COLLONNA", tutti e due con default "1":
SE RIGHE (N) > COLONNE (M)
INCREMENTO_RIGA = RIGHE / COLONNE
ALTRIMENTI
INCREMENTO_COLONNA = COLONNE / RIGHE
Poi rispettando questo incremento il codice dovrebbe esserti più chiaro.
Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
DOT.NET Addicted since 2006 (My Blog)
si si,credo di aver capito...da sola non ne avrei cavato piede sono alle prime armigrazie dell'aiuto
![]()
![]()
Di niente, buona fortuna!![]()
Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
DOT.NET Addicted since 2006 (My Blog)