Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - vorrei scrivere un programma che abbia un menù e in cui bisogna costruire una matrice quadrata
Forum - C/C++ - vorrei scrivere un programma che abbia un menù e in cui bisogna costruire una matrice quadrata - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
breath (Normal User)
Newbie


Messaggi: 9
Iscritto: 06/02/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 16:11
Martedì, 19/10/2010
ora "d" lo stai usando come variabile non più per definire la matrice quindi togli quel
Codice sorgente - presumibilmente C/C++

  1. int d = 10;


e metti
Codice sorgente - presumibilmente C/C++

  1. int d;


PM
Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 16:14
Martedì, 19/10/2010
l'ho fatto ma  non va comunque, premo a e poi il programma si stoppa, se potete provate copia e incolla su dev c++ così vedete se succede anche a voi

PM
Avatar
breath (Normal User)
Newbie


Messaggi: 9
Iscritto: 06/02/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 16:21
Martedì, 19/10/2010
c'è ancora un errore , poi dovrebbe andarti , hai messo:
Codice sorgente - presumibilmente C/C++

  1. int opzione;



non è possibile che sia int dato che le scelte sono"a" e "b" , mettilo come char

PM
Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 16:49
Martedì, 19/10/2010
ho risolto, vi scrivo il programma corretto
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. using namespace std;
  3. char r;
  4. int M[10][10];
  5. int v[10];
  6. int d;
  7.  
  8. void leggi_matrice(int d, int M[][10])
  9. {
  10.    cout<<" inserisci i valori della matrice";
  11.    for ( int i = 0; i < d; i++)
  12.    {
  13.       for (int j = 0; j < d; j++)
  14.       {
  15.          cout << "M["<< i <<"]["<< j <<"]=";
  16.          cin >> M [i] [j];
  17.       }
  18.    }
  19. }
  20.  
  21. void somma_colonna(int d, int M[][10], int v[])
  22. {
  23.    int somma = 0;
  24.    for ( int i = 0; i < d ; i++)
  25.    {
  26.       for ( int j = 0; j < d; j++)
  27.       {
  28.          somma += M [j][i];
  29.       }
  30.       v[i] = somma;
  31.       somma = 0;
  32.    }
  33. }
  34.  
  35. int main(void)
  36. {
  37.    char opzione = 0;
  38.    do
  39.    {
  40.       cout << "MENU'" << endl;
  41.       cout << " Scegliere una lettera corrispondente all'operazione da svolgere :" << endl;
  42.       cout <<"a) costruisci la matrice quadrata" << endl;
  43.       cout<< "b) calcola la somma di ogni colonna della matrice :" << endl;
  44.       cin >> opzione;
  45.    
  46.       switch(opzione)
  47.       {
  48.          case 'a':
  49.             {
  50.                cout << endl << " scegli la dimensione della matrice quadrata (max 10):" <<endl;
  51.                cin >> d;
  52.                if (( d >= 2) && ( d<= 10))
  53.                   cout << d;
  54.                else
  55.                   cout << "errore" << endl;
  56.                cout << "inserisci gli elementi della matrice :" <<endl;
  57.                leggi_matrice(d, M);
  58.             }
  59.          break;
  60.          case 'b':
  61.             {
  62.                cout << " questa opzione somma i valori delle colonne" << endl;
  63.                somma_colonna(d, M, v);
  64.                for(int i = 0; i < d; i++)
  65.                {
  66.                   cout << v[i] << endl;
  67.                }
  68.             }
  69.          break;
  70.       }
  71.    }while(opzione != 'e');
  72. }


PM
Avatar
breath (Normal User)
Newbie


Messaggi: 9
Iscritto: 06/02/2009

Up
-1
Down
V
Segnala al moderatore
Postato alle 15:49
Martedì, 19/10/2010
Codice sorgente - presumibilmente C/C++

  1. int d;
  2. int M[d][d];


questa parte è sbagliata,hai inizializzo d ma a questo non hai dato un valore,ciò vuol dire che alla matrice non hai dato una dimensione definita , e quindi da errore.la "d" in questione va utilizzata come indice o se vuoi utilizzarlo per dimensionare la matrice devi fare
Codice sorgente - presumibilmente C/C++

  1. int d = 10;
  2. int M[d][d];


oppure definisci d come costante invece che variabile in questo modo
Codice sorgente - presumibilmente C/C++

  1. #define d 10
  2. int M[d][d];


poi ho notato che hai utilizzato le variabili "a" e "b" però queste non le hai dichiarate,ci vogliono:
Codice sorgente - presumibilmente C/C++

  1. int a ;
  2. int b ;


qua invece hai messo un array invece di una matrice , ci vuole un altro "[]"
Codice sorgente - presumibilmente C/C++

  1. void Somma(int M[], int d)



ci sono altri errori ma è meglio se li scopri da sola dato che sei agli inizi , in ogni caso se non sai dove sbattere la testa riposta qua il programma leggermente corretto che ti diamo una mano

PM
Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Up
-1
Down
V
Segnala al moderatore
Postato alle 16:01
Martedì, 19/10/2010
adesso me lo dà su int d == 10, anche se comunque c'è un problema, la dimensione la devo scegliere quindi non posso porre d=10

PM
Pagine: [ 1 2 ] Precedente | Prossimo