Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    1

    C++ esercitazione con array 2D

    Ciao a tutti sono qui per cercare assieme al vostro aiuto di trovare una soluzione a questo problema:

    Siano dati due array di tipo 2D, prod_negozio di dimensioni Nx2 e prod_deposito di dimensioni Mx2, entrambi di tipo intero.In questi array sono memorizzati, per ciascuna riga, nella colonna 1 il codice di un prodotto, e nella colonna 2 quanti di quei prodotti sono presenti rispettivamente nel negozio e nel deposito.Le righe di entrambi gli array sono ordinate per codice. Progettare un algoritmo sotto forma di procedure che fornisca come risultato un array 2D totale_prod che sempre rispettando l'ordine dei codici nella seconda colonna indichi quanti prodotti sono disponibili per ciascun tipo di prodotto in totale tra negozio e deposito.

    Io l'ho pensato così, il compilatore non mi da nessun'errore ma l'algoritmo non mi da come risultato la matrice finale.

    codice:
     
    void esercitazione(int a[10][10],int b[10][10],int c[10][10],int n,int m) {  
                                      int i,j,k,cont=0;                                                                                            while((i<n) || (j<m)){
                                       k=0;
                                       if(a[i][k]< b[j][k]){
                                                                    c[cont][k]=a[i][k];
                                                                    k++;
                                                                    c[cont][k]=a[i][k];
                                                                    cont++;
                                                                    i++;                       }
                                                                                                                        
                                        if(a[i][k]>b[j][k]){
                                                                    c[cont][k]=b[j][k];
                                                                    k++;
                                                                    c[cont][k]=b[j][k];     
                                                                    cont++;
                                                                    j++;                       }                                                                                      
                                                                                                                        
                                         if(a[i][k]=b[j][k]){
                                                                     c[cont][k]=a[i][k];
                                                                     k++;
                                                                     c[cont][k]=a[i][k]+b[j][k];
                                                                     cont++;                                                                                                                                        i++;
                                                                     j++;                                  } 
                                                                                                                       
                                                                                                                       }
                                          if(j<m){
                                             while(j<m){
                                                                k=0;
                                                                c[cont][k]=b[j][k];
                                                                k++;
                                                                c[cont][k]=b[j][k];
                                                                cont++;
                                                                j++; } }
                                          if(i<n){
                                             while(i<n){
                                                              k=0;
                                                              c[cont][k]=a[i][k];
                                                              k++;
                                                              c[cont][k]=a[i][k];
                                                              cont++;
                                                              i++; }  }
     
                                                                                                                                              
    }
    Ultima modifica di Noyz; 16-01-2015 a 15:56

  2. #2
    Se non mi sbaglio gli array non vanno passati con la dimensione tra le parentesi
    int a[10][10]

    ma dovrebbe essere una cosa tipo
    int a[][], int dim

    dove dim è la dimensione dell'array almeno così mi hanno isegnato, con il tuo codice forse parte a leggere proprio dalla cella di memoria puntata da a[10][10] l'ultimo elemento invece che dal primo [0][0] prova e fammi sapere XD

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.