Oppure

Loading
19/10/10 14:01
ciao888
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
aaa
19/10/10 14:01
Ultimo

int d == 10; No

int d = 10; Si :blush:

If ok Then GOTO Avanza else GOTO Inizia

19/10/10 14:07
ciao888
l'ho corretto così, non mi dà errore adesso, ma si apre col menù e poi quando premo a per costruire la matrice si chiude il programma

#include <iostream>
 using namespace std;
 char r;
 int M[10][10];
 int v[10];
 int d = 10;
 int a;
 int b;
 
 void leggi_matrice(int d, int M[][10]){
 cout<<" inserisci i valori della matrice";
 for ( int i = 0; i <= d; i++){
     for (int j = 0; j <= d; j++){
     cout << "M["<< i <<"]["<< j <<"]=";
     cin >> M [i] [j];}}}
     
 void somma_colonna(int d, int M[][10]){
     int somma = 0;
     for ( int i = 0; i <= d ; i++){
     for ( int j = 0; j <= d; j++){
    somma += M [j][i];
    v[i] = somma;
    somma = 0;}}}
   
    int main(void)
    {
    int opzione;
 cout << "MENU'" << endl;
 cout << " Scegliere una lettera corrispondente all'operazione da svolgere :" << endl;
  cout <<"a) costruisci la matrice quadrata" << endl;
  cout<< "b) calcola la somma di ogni colonna della matrice :" << endl;
  cin >> opzione;
   
   switch(opzione)
   {
 
    case 'a':
    cout << " scegli la dimensione della matrice quadrata (max 10):";
   cin >> d;
   if (( d >= 2) && ( d<= 10))
    cout << d;
    else cout << "errore" << endl;
   
     cout << "inserisci gli elementi della matrice :";
     leggi_matrice(d, M);
     break;
     
    case 'b':
    cout << " questa opzione somma i valori delle colonne";
    somma_colonna(d, M);
     break;}}
aaa
19/10/10 14:11
breath
ora "d" lo stai usando come variabile non più per definire la matrice quindi togli quel
int d = 10;

e metti
int d;
aaa
19/10/10 14:14
ciao888
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
aaa
19/10/10 14:21
breath
c'è ancora un errore , poi dovrebbe andarti , hai messo:
int opzione;


non è possibile che sia int dato che le scelte sono"a" e "b" , mettilo come char
aaa
19/10/10 14:49
ciao888
ho risolto, vi scrivo il programma corretto
#include <iostream>
using namespace std;
char r;
int M[10][10];
int v[10];
int d;

void leggi_matrice(int d, int M[][10])
{
   cout<<" inserisci i valori della matrice";
   for ( int i = 0; i < d; i++)
   {
      for (int j = 0; j < d; j++)
      {
         cout << "M["<< i <<"]["<< j <<"]=";
         cin >> M [i] [j];
      }
   }
}

void somma_colonna(int d, int M[][10], int v[])
{
   int somma = 0;
   for ( int i = 0; i < d ; i++)
   {
      for ( int j = 0; j < d; j++)
      {
         somma += M [j][i];
      }
      v[i] = somma;
      somma = 0;
   }
}

int main(void)
{
   char opzione = 0;
   do
   {
      cout << "MENU'" << endl;
      cout << " Scegliere una lettera corrispondente all'operazione da svolgere :" << endl;
      cout <<"a) costruisci la matrice quadrata" << endl;
      cout<< "b) calcola la somma di ogni colonna della matrice :" << endl;
      cin >> opzione;
   
      switch(opzione)
      {
         case 'a':
            {
               cout << endl << " scegli la dimensione della matrice quadrata (max 10):" <<endl;
               cin >> d;
               if (( d >= 2) && ( d<= 10))
                  cout << d;
               else 
                  cout << "errore" << endl;
               cout << "inserisci gli elementi della matrice :" <<endl;
               leggi_matrice(d, M);
            }
         break;
         case 'b':
            {
               cout << " questa opzione somma i valori delle colonne" << endl;
               somma_colonna(d, M, v);
               for(int i = 0; i < d; i++)
               {
                  cout << v[i] << endl;
               }
            }
         break;
      }
   }while(opzione != 'e');
}
aaa