Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    28

    [c++] Inserire piu matrici da tastiera!

    Devo inserire delle matrici che sono specificate da una lettera "A","B","C",.."Z"
    quindi posso inserire massimo 26 matrici.
    ogni matrice è specificata da due interi r e c righe e colonne.

    avevo abbozzato una cosa cosi:
    codice:
    struct matrix
    {
        int r;
        int c;
        char nome;
        int data[100][100];
    } 
    void specifica(int& n)
    {
        cin>>n;
    }
    matrix m[n];
    avreste altre soluzioni senza impostare per esempio la grandezza massima 100?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Alloca dinamicamente lo spazio che ti serve con la new
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    28
    potresti farmi un esempio?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    28
    Mi da questo errore: progetto442.cpp|33|error: 'y' cannot appear in a constant-expression|
    codice:
    #include <iostream>
    #include <string>
    using namespace std;
    struct matrix
    {
        char nome;
        int r;
        int c;
        int** data;
    };
    //N MATRICI,UNA LETTERA CHE INDICA UNA MATRICE,INTERO R,INTERO C
    void specificaN(int& n)
    {
        cin>>n;
    }
    int main()
    {
        int n;
        specificaN(n);
        matrix m[n];
        int index=0;
        char l;
        int x,y;
        while(n!=0)
        {
            cout<<"inserisci nome A,B,C,..:"<<endl;
            cin>>l;
            m[index].nome=l;
            cin>>x;
            m[index].r=x;
            cin>>y;
            m[index].c=y;
            m[index].data=new int[x][y];
            n--;
            index++;
        }
    
    }

  5. #5
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Uhm...
    Questa discussione è pressochè identica
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  6. #6
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    L' operatore new[] alloca un array di oggetti (o tipi primitivi).
    new[][] non esiste, puoi ottenere l' effetto voluto allocando prima x puntatori, poi ogni puntatore allocato lo fai puntare ad un' area di memoria ritornata da new[], passando y come argomento:

    codice:
    m[index].data=new int*[x];
            for(int i=0; i<x;i++)
                m[index].data[i]=new int[y];
    Ora l' errore di sintassi è risolto ma non ho controllato se il codice fa effettivamente quello che cerchi di fare.Se ci sono problemi dillo.

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.