Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di IeRi
    Registrato dal
    Feb 2010
    Messaggi
    5

    [c#]riempire la diagonale di un array

    Come posso riempire una diagonale secondaria di un array bidimensionale n*n?grazie

  2. #2
    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)

  3. #3
    Utente di HTML.it L'avatar di IeRi
    Registrato dal
    Feb 2010
    Messaggi
    5
    graziee mille dell'aiuto spero di capire come si fà adesso

  4. #4
    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)

  5. #5
    Utente di HTML.it L'avatar di IeRi
    Registrato dal
    Feb 2010
    Messaggi
    5
    si si,credo di aver capito...da sola non ne avrei cavato piede sono alle prime armi grazie dell'aiuto

  6. #6
    Di niente, buona fortuna!
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

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.