Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    Array multidimensionali, come utilizzarli?

    Buon Giorno a tutti,
    avrei estremo bisogno di comprendere al meglio l'utilizzo degli array multidimensionali.
    Premetto che ho studiato il libro "Fondamenti di C++" di Cay Hosrtsmann e i capitoli principali e necessari, ma non ho ancora capito come utilizzarli.
    Ad esempio, io dovrei riuscire a creare una matrice con dei valori e poi riuscire ad estrarre il max e il min per ogni riga e per ogni colonna.

    Il ragionamento sarebbe questo:
    codice:
    ......
    int main()
    {
        cout << "Inserisci numero di righe e colonne";
        int n;
        cin >> n;
        for (int i = 0; i < n; i++)
        {
             for (int j = 0; j < n; j++)
             cout << "[]";
             cout << "\n";
         }
    return 0;
    }
    ma in questo modo avrei solo una matrice del tipo
    [][][][][][][][]
    [][][][][][][][]
    [][][][][][][][]
    [][][][][][][][]
    [][][][][][][][]
    di 'n' righe ed 'n' colonne. Comedovrei fare per inserire una serie di numeri e realizzare quanto desidero?
    Grazie in anticipo .
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2

    Re: Array multidimensionali, come utilizzarli?

    Originariamente inviato da the-bit
    ...
    codice:
    ......
    int main()
    {
        cout << "Inserisci numero di righe e colonne";
        int n;
        cin >> n;
        for (int i = 0; i < n; i++)
        {
             for (int j = 0; j < n; j++)
             cout << "[]";
             cout << "\n";
         }
    return 0;
    }
    ...
    Buon giorno anche a te.
    Nel codice che hai postato non vedo al dichiarazione della matrice.
    Inoltre prima di visualizzarne il contenuto (della matrice) dovresti inserirvi dei valori
    altrimenti quello che visualizzarai è solo 'spazzatura', ti ricordo che in C/C++ le variabili
    non vengono mai inizializzate automaticamente.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Si, infatti, ma il mio era solo un esempio.
    Ho provato, nel frattempo, a realizzare quanto volevo, ma sono entrato in un ciclo infinito.
    Ti posto quinid il codice:
    codice:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int n = 1;
        int n_increm = 3;
        int n_max = 100;
        
        cout << "Inserisci n° di righe \n";
        int righe;
        cin >> righe;
        
        cout << "Inserisci n° di colonne \n";
        int colonne;
        cin >> colonne;
        
        while (n < n_max)
        {
            for (int i = 0; i < colonne; i++)
            {
                for (int j = 0; j < righe; j++)
                cout << "[" << n << "]";
            }       
        }
        n = n + n_increm;
        
        system("pause");
        return 0;
    }
    "To iterate is human, to recurse, divine." (R.(Heller))

  4. #4

    Re: Re: Array multidimensionali, come utilizzarli?

    E logico che vada in loop dato che
    int n = 1;
    int n_max = 100;

    while (n < n_max) // Questa condizione è sempre true...

    Comunque n_max è inutile la puoi eliminare, ed acne lo stesso ciclo while.
    Io ancora non vedo la dichiarazione della matrice ...
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  5. #5
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    la matrice infatti non l'ho dichiarata
    m ala costruisco con i numeri o con '[]'.
    Il problema l'ho risolto: ho chiuso la parentesi del while dopo n = n + n_incr.
    Solo che ora notavo che se inserisco 2 righe e 2 colonne, non poò visualizzarmi tutti i numeri da 1 a 100.
    Come fare per aggirare questo bug?
    "To iterate is human, to recurse, divine." (R.(Heller))

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    24
    scusami, magri ho ancora un po' di sonno, ma non ho ben capito cosa deve fare il tuo programma.
    Cioè se devi avere una matrice con tutti i numeri da 1 a 100 ovviamente dovrai avere una matrice tipo
    int n[10][10]; o più in generale:
    codice:
    int numero_righe, numero_colonne;
    cin>>numero_righe;
    cin>>numero_colonne;
    int n[numero_righe][numero_colonne];
    dopo di che bastano due cicli for uno dentro l'altro tipo:
    codice:
    for(int i=0; i < numero_righe; i++){
       for((int j=0; j <numero_colonne; j++){
          cout<<"Inserisci un valore per la cella ("<<i<<","<<j<<"): ";
          cin>>n[i][j];
       }
    }
    spero di non aver fatto errori, sono di fretta
    ciao

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Ricordo che, come da Regolamento, oltre ad una descrizione significativa, è necessario indicare il linguaggio di programmazione nel titolo.

    Qui l'ho aggiunto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.