Programma Matrice e Vettori

di il
3 risposte

Programma Matrice e Vettori

Salve, dovrei fare questo programma


/*
Assegnata la matrice MATR di interi di cardinalità 22, 16 e di riempimenti N,M, ottenere:

- il vettore VETTP formato dagli elementi di valore pari di MATR;
- il vettore VETTD formato dagli elementi di valore dispari di MATR.
- Calcolare il massimo di VETTD.
*/

Ho provato a fare così, ma il problema è che il vettore dei numeri pari e dei numeri dispari me lo crea al massimo di 3 elementi... come posso fare per creare un vettore formato da tutti gli elementi pari e dispari della matrice?? Ringrazio in anticipo

#include <iostream>
#include <math.h>

using namespace std;

int main ()
{


int MATR[22][16];
int M,N;
int VETTP[352];
int VETTD[352];
int i,j;
int maxd=0;

    cout << "Inserire il numero delle righe : " << endl;
    cin >> M;
    cout << "Inserire il numero delle colonne ; " << endl;
    cin >> N;


//  Inserimento elementi della matrice matrice *********************************
    for(i=0; i<M; i++)
    {
       for(j=0; j<N; j++)
       {
                cout << "A[" << i << "][" << j << "]=";
                cin >> MATR[i][j];
       }
    }
//  ****************************************************************************    
    
//  Stampa della matrice *******************************************************    
    
    cout << "\n La MATRICE inserita e' : " << endl;
    for(i=0; i<M; i++)
    {
       for(j=0; j<N; j++)
       cout << "  " << MATR[i][j];
       cout << endl;
    }
//  ****************************************************************************

// Ricerca elementi pari nella matrice *****************************************
   
    for(i=0; i<M; i++)
    {
        for(j=0; j<N; j++)
        {
           if(MATR[i][j] % 2 == 0)
           { 
              VETTP[i]=MATR[i][j];
           } 
        }
    }
//  ****************************************************************************

// Ricerca elementi dispari nella matrice **************************************

    for(i=0; i<M; i++)
    {
        for(j=0; j<N; j++)
        {
           if(MATR[i][j] % 2 != 0)
           { 
              VETTD[i]=MATR[i][j];
           } 
        }
    }
//  ****************************************************************************
    
//  Calcolo MASSIMO di VETTD ***************************************************

     for(i=0; i<M; i++)
     if( maxd < VETTD[i])
     {
         maxd=VETTD[i];
     }
//  ****************************************************************************


//  Varie stampe a video *******************************************************

     cout << "\nIl vettore degli elementi pari della matrice e' " <<endl;
     for(i=0; i<M; i++)
     cout << VETTP[i] << "  " << endl;
     
     cout << "\nIl vettore degli elementi dispari della matrice e' " <<endl;
     for(i=0; i<M; i++)
     cout << VETTD[i] << "  " << endl;
     
     cout << "\nIl massimo di VETTD e' " << maxd << endl;
//  ****************************************************************************


system("PAUSE");
return EXIT_SUCCESS;
}

3 Risposte

  • Re: Programma Matrice e Vettori

    Prova a fare questa modifica qui:

    int x=0;
    int y=0;

    // Ricerca elementi pari nella matrice *****************************************

    for(i=0; i<M; i++)
    {
    for(j=0; j<N; j++)
    {
    if(MATR[j] % 2 == 0)
    {
    VETTP[x]=MATR[j];
    x++
    }
    else
    {
    VETTD[y]=MATR[j],
    y++
    }
    }
    }


    spero di essere stato utile......
  • Re: Programma Matrice e Vettori

    Grazie! Ma quando vado a stamparlo a video che tipo di ciclo for ci metto??

    for(x=0; x< ??? ; x++)
    cout << VETTP[x] << " ";
    cout <<endl;

    Il risultato è uguale mi stampa sempre i numeri pari fino ad un massimo dello stesso numero delle righe..
  • Re: Programma Matrice e Vettori

    Ho risolto.... posto il risultato nel caso qualcuno ne avesse bisogno.


    /*
    Assegnata la matrice MATR di interi di cardinalità 22, 16 e di riempimenti N,M, ottenere:

    - il vettore VETTP formato dagli elementi di valore pari di MATR;
    - il vettore VETTD formato dagli elementi di valore dispari di MATR.
    - Calcolare il massimo di VETTD.
    */
    
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    
    int main ()
    {
    
    
    int MATR[22][16];
    int M,N;
    int VETTP[352];
    int VETTD[352];
    int i,j;
    int maxd=0;
    int p, d;
    
        cout << "Inserire il numero delle righe : " << endl;
        cin >> M;
        cout << "Inserire il numero delle colonne ; " << endl;
        cin >> N;
    
    
    //  Inserimento elementi della matrice matrice *********************************
        for(i=0; i<M; i++)
        {
           for(j=0; j<N; j++)
           {
                    cout << "A[" << i << "][" << j << "]=";
                    cin >> MATR[i][j];
           }
        }
    //  ****************************************************************************    
        
    //  Stampa della matrice *******************************************************    
        
        cout << "\n La MATRICE inserita e' : " << endl;
        for(i=0; i<M; i++)
        {
           for(j=0; j<N; j++)
           cout << "  " << MATR[i][j];
           cout << endl;
        }
    //  ****************************************************************************
    
    // Ricerca elementi pari nella matrice *****************************************
        
        p=0;   
        for(i=0; i<M; i++)
        {
            for(j=0; j<N; j++)
            {
               if(MATR[i][j] % 2 == 0)
               { 
                  VETTP[p]=MATR[i][j];
                  p++;
               } 
            }
        }
    //  ****************************************************************************
    
    // Ricerca elementi dispari nella matrice **************************************
        
        d=0;
        for(i=0; i<M; i++)
        {
            for(j=0; j<N; j++)
            {
               if(MATR[i][j] % 2 != 0)
               {            
                  VETTD[d]=MATR[i][j];
                  d++;
               } 
            }
        }
    //  ****************************************************************************
    
    //  Calcolo MASSIMO di VETTD ***************************************************
         
         if ( p > 0 )
         {
             for(i=0; i<d; i++)
                 if ( maxd < VETTD[i] )
                 {
                 maxd=VETTD[i];
                 }
         }
    //  ****************************************************************************
    
    //  Varie stampe a video *******************************************************
         if ( p > 0 )
         {
         cout << "\nIl vettore degli elementi pari della matrice e' " <<endl;
         for(i=0; i<p; i++)
         cout << VETTP[i] << "  ";
         }
         else cout << "\nLa matrice non ha elementi pari!" << endl;
         
         if ( d > 0 )
         {
         cout << "\nIl vettore degli elementi dispari della matrice e' " <<endl;
         for(i=0; i<d; i++)
         cout << VETTD[i] << "  ";
         cout << endl;
         
         cout << "\nIl massimo di VETTD e' " << maxd << endl;
         }
         else cout << "\nLa matrice non ha elementi dispari!" << endl;
    //  ****************************************************************************
    
    
    system("PAUSE");
    return EXIT_SUCCESS;
    }
    
Devi accedere o registrarti per scrivere nel forum
3 risposte