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++ - Inserire 2 vettori in un singolo vettore
Forum - C/C++ - Inserire 2 vettori in un singolo vettore

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
-@EnRy@- (Normal User)
Rookie


Messaggi: 41
Iscritto: 13/11/2011

Segnala al moderatore
Postato alle 13:29
Domenica, 04/03/2012
Ciao a tutti, ho un problemino non riesco a unire due vettori per crearne uno singolo... Mi potete dire come si fa?...

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 13:56
Domenica, 04/03/2012
Ciao!

Cosa intendi per unione di due vettori?
I vettori hanno lo stesso numero di dimensioni?

Posta il tuo tentativo.

PM Quote
Avatar
-@EnRy@- (Normal User)
Rookie


Messaggi: 41
Iscritto: 13/11/2011

Segnala al moderatore
Postato alle 14:00
Domenica, 04/03/2012
Devo fare un programma che acquisisce 2 vettori a caso li ordina e poi li unisce ad un altro vettore più grande e li ordina nuovamente! :)

Codice sorgente - presumibilmente C++

  1. #include<iostream>
  2. #include<math.h>
  3. #include<stdio.h>
  4. #include<conio.h>
  5.  
  6. using namespace std;
  7.  
  8. int main() {
  9.         int max=10,v1[max],v2[max],v[max+max],i,j,temp,temp2;
  10.        
  11.         srand(time(NULL));
  12.         for(i=0;i<max;i++)
  13.         {
  14.                                           v1[i]=rand()%(100);
  15.                                       v2[i]=rand()%(100);
  16.         }
  17.        
  18.  cout<<"\nstampa 1 vettore: ";
  19.  for(i=0;i<max;i++)
  20.  {
  21.    cout<<"\nv"<<i+1<<" = " <<v1[i]<<endl;
  22.  }
  23.  cout<<"\n-----------------------------------------";
  24.   cout<<"\n\nStampa 2 vettore: "<<endl;
  25.  for(i=0;i<max;i++)
  26.  {
  27.    cout<<"\nv"<<i+1<<" = " <<v2[i]<<endl;
  28. }
  29.  
  30.     for(i=0;i<max;i++)
  31.     {
  32.        for(j=i+1;j<max;j++)
  33.        {
  34.            if(v1[i]>v1[j])
  35.            {
  36.                temp=v1[i];
  37.                v1[i]=v1[j];
  38.                v1[j]=temp;
  39.  
  40.            }
  41.                    if(v2[i]>v2[j])
  42.                    {
  43.                                                                            
  44.                             temp2=v2[i];
  45.                v2[i]=v2[j];
  46.                v2[j]=temp2;
  47.                                    
  48.                    }          
  49.        }              
  50.     }
  51.  cout<<"\n-----------------------------------------";
  52. cout<<"\n\nStampa primo vettore in modo ordinato: "<<endl;
  53.  for(i=0;i<max;i++)
  54.  {
  55.    cout<<"\nv"<<i+1<<" = " <<v1[i]<<endl;
  56.  }
  57.   cout<<"\n-----------------------------------------";
  58. cout<<"\n\nStampa 2 vettore in modo ordinato: "<<endl;
  59.  for(i=0;i<max;i++)
  60.  {
  61.    cout<<"\nv"<<i+1<<" = " <<v2[i]<<endl;
  62. }
  63.  
  64.   cout<<"\n-----------------------------------------";
  65.     cout<<"\n-----------------------------------------";
  66.       cout<<"\n-----------------------------------------";
  67.      
  68.  
  69. for(i=0;i<max;i++)
  70. {
  71.         v1[i]=v[i];
  72.        
  73.                                  
  74. }
  75.  
  76. /*for(i=10;i<20;i++)
  77. {
  78.  for(j=0;i<max;i++)
  79.  {
  80.      v[i]=v2[j];
  81.  }
  82. }*/
  83.  
  84.     cout<<"\n-----------------------------------------";
  85.       cout<<"\n-----------------------------------------";
  86.       cout<<"\n\nStampa vettore unito"<<endl;
  87. for(i=0;i<max+max;i++)
  88. {
  89.                                           cout<<endl;
  90.                                           cout<<v[i]<<endl;
  91. }
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  while(!getch());
  98.  return 0;
  99. }


PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:57
Domenica, 04/03/2012
Doppio

Ultima modifica effettuata da Poggi Marco il 04/03/2012 alle 14:58
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:57
Domenica, 04/03/2012
Ho letto il programma, e ho trovato alcune confusioni sulle variabili che iterano sui vettori da caricare. Per ovviare a ciò, ti consiglio di utilizzare le funzioni.

Nel ciclo di caricamento del secondo vettore, tu dichiari:
Codice sorgente - presumibilmente Plain Text

  1. for(j=0;i<max;i++)   // nell' intestazione utilizzi la variabile j ed i
  2.  {
  3.      v[i]=v2[j];  
  4.  }
  5. }



Mentre, dovresti scrivere:
Codice sorgente - presumibilmente Plain Text

  1. for(j=max;j<2*max;j++)  // j parte da 10 e arriva a 19
  2.  {
  3.      v[ j ]= v2[ j - max ];  
  4.  }


PM Quote
Avatar
-@EnRy@- (Normal User)
Rookie


Messaggi: 41
Iscritto: 13/11/2011

Segnala al moderatore
Postato alle 15:02
Domenica, 04/03/2012
Testo quotato

Postato originariamente da Poggi Marco:

  Doppio  




Capito tutto grazie mille :) Che errori stupidi che ho fatto!


Edit: Anche correggiendo come dici te il programma non prende il primo vettore! cioè v1!!


Codice sorgente - presumibilmente C++

  1. #include<iostream>//zandegiacomo enrico
  2. #include<math.h>
  3. #include<stdio.h>
  4. #include<conio.h>
  5.  
  6. using namespace std;
  7.  
  8. int main() {
  9.         int max=10,v1[max],v2[max],v[max+max],i,j,temp,temp2;
  10.        
  11.         srand(time(NULL));
  12.         for(i=0;i<max;i++)
  13.         {
  14.                                           v1[i]=rand()%(100);
  15.                                       v2[i]=rand()%(100);
  16.         }
  17.        
  18.  cout<<"\nstampa 1 vettore: ";
  19.  for(i=0;i<max;i++)
  20.  {
  21.    cout<<"\nv"<<i+1<<" = " <<v1[i]<<endl;
  22.  }
  23.  cout<<"\n-----------------------------------------";
  24.   cout<<"\n\nStampa 2 vettore: "<<endl;
  25.  for(i=0;i<max;i++)
  26.  {
  27.    cout<<"\nv"<<i+1<<" = " <<v2[i]<<endl;
  28. }
  29.  
  30.     for(i=0;i<max;i++)
  31.     {
  32.        for(j=i+1;j<max;j++)
  33.        {
  34.            if(v1[i]>v1[j])
  35.            {
  36.                temp=v1[i];
  37.                v1[i]=v1[j];
  38.                v1[j]=temp;
  39.  
  40.            }
  41.                    if(v2[i]>v2[j])
  42.                    {
  43.                                                                            
  44.                             temp2=v2[i];
  45.                v2[i]=v2[j];
  46.                v2[j]=temp2;
  47.                                    
  48.                    }          
  49.        }              
  50.     }
  51.  cout<<"\n-----------------------------------------";
  52. cout<<"\n\nStampa primo vettore in modo ordinato: "<<endl;
  53.  for(i=0;i<max;i++)
  54.  {
  55.    cout<<"\nv"<<i+1<<" = " <<v1[i]<<endl;
  56.  }
  57.   cout<<"\n-----------------------------------------";
  58. cout<<"\n\nStampa 2 vettore in modo ordinato: "<<endl;
  59.  for(i=0;i<max;i++)
  60.  {
  61.    cout<<"\nv"<<i+1<<" = " <<v2[i]<<endl;
  62. }
  63.  
  64.   cout<<"\n-----------------------------------------";
  65.     cout<<"\n-----------------------------------------";
  66.       cout<<"\n-----------------------------------------";
  67.      
  68.  
  69. for(i=0;i<max;i++) // i parte da 0 e arriva a 9
  70. {
  71.         v1[i]=v[i];
  72.        
  73.                                  
  74. }
  75.  
  76.     for(j=max;j<2*max;j++)  // j parte da 10 e arriva a 19
  77.      {
  78.          v[ j ]= v2[ j - max ];  
  79.      }
  80.     cout<<"\n-----------------------------------------";
  81.       cout<<"\n-----------------------------------------";
  82.       cout<<"\n\nStampa vettore unito"<<endl;
  83. for(i=0;i<max+max;i++)
  84. {
  85.                                           cout<<endl;
  86.                                           cout<<v[i]<<endl;
  87. }
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  while(!getch());
  95.  return 0;
  96. }


Ultima modifica effettuata da -@EnRy@- il 04/03/2012 alle 15:05
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 15:14
Domenica, 04/03/2012
Testo quotato

Edit: Anche correggiendo come dici te il programma non prende il primo vettore! cioè v1!!


Non carica il primo vettore, perché hai invertito l' ordine dei termini dell' uguaglianza.

PM Quote
Avatar
-@EnRy@- (Normal User)
Rookie


Messaggi: 41
Iscritto: 13/11/2011

Segnala al moderatore
Postato alle 15:26
Domenica, 04/03/2012
Testo quotato

Postato originariamente da Poggi Marco:

Testo quotato

Edit: Anche correggiendo come dici te il programma non prende il primo vettore! cioè v1!!


Non carica il primo vettore, perché hai invertito l' ordine dei termini dell' uguaglianza.




Ok Perfetto...
Grazie :) :k:


Ultima modifica effettuata da -@EnRy@- il 04/03/2012 alle 18:06
PM Quote
Avatar
subazu (Normal User)
Rookie


Messaggi: 35
Iscritto: 06/08/2011

Segnala al moderatore
Postato alle 21:16
Domenica, 04/03/2012
Se poi alla fine devi riordinare il terzo vettore con l'algoritmo che hai usato in cima per ordinare il primo e il secondo, c'è un modo molto più efficiente per fare il lavoro del tuo intero algoritmo.


Ultima modifica effettuata da subazu il 04/03/2012 alle 21:18
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo