C++ , programma con i vettori..

di Anonimizzato14731 il
9 risposte
Ciao Ragazzi,vorrei sapere se potete darmi un aiuto!
Il mio programma richiede l'utilizzo delle funzioni.
1)Caricare n elementi in un vettore
2)creare una funzione che mi dica quante volte sono presenti gli elementi nel vettore(ad esempio:dato il vettore 1 3 1 2 4 7 5 2 5 4 1) 1 è presente 3 volte,3 una volta,2 due volte etc)
3)Creare un secondo vettore dato dal precedente e che elimini tutte le copie presenti
4) visualizzi gli elementi del vettore

#include <iostream>

using namespace std;

void LoadVett(int V[],int n){
for(int i=0; i<n; i++){
cout<<"Inserisci un valore"<<endl;
cin>>V[i];
}
}

void CoutVett(int V[],int n)
{
cout<<"Il vettore è formato da ";
for(int i=0; i<n; i++)
{
cout<<V[i]<< ", ";
}
}
int main()
{
int V[100],n;

    cout<<"Inserisci numero elementi da inserire"<<endl;
    cin>>n;
    LoadVett(V,n);
}
Scusami... ho fatto il primo e quarto punto !

9 Risposte

  • Leggi il regolamento. Se vuoi un aiuto te la diamo ma se vuoi la soluzione no.
    Fai vedere dove che ti sei fermato e poi vediamo. Intanto cambia il tito del thread.
  • Ho cambiato la domanda... sono arrivato fin lì..
  • Per il secondo punto.
    (se non hai ancora studiato le strutture)
    1. Crei un vettore della stessa grandezza del primo
    2. Chiama una funzione che ti conta quante volte il valore i-esimo è presente nel primo vettore e ti stampa quante volte ha trovato il valore
    3. inserisci il valore nel secondo vettore nel primo posto vuoto(che lo chiamaiamo ricercato)
    4. Continua dal punto 2 per i +1

    (se hai studiato le strutture)
    Crea una struttura del tipo
    
    struct conteggio
    {
       int valore;
       int occorrenze;
    }
    
    1. Crea un vettore di strutture della dimensione del vettore iniziale
    2. Se il valore non è presente in struttura lo inserisci e imposti la sua occorrenza ad 1
    2b. se c'è aumenti di uno la sua occorrenza.
  • Scusa ma non ho capito come fare il punto due...
    2) Chiama una funzione che ti conta quante volte il valore i-esimo è presente nel primo vettore e ti stampa quante volte ha trovato il valore
    Di solito io faccio il confronto di un elemento in una posizione con un elemento inserito da me e aumento un contatore ma ora è diverso...
    Ecco come faccio:
    void occorenzel(int V[],int x,int c){
    for(int i=0;i<n;i++){
        if(V[i]==x){c++;}
        else{i++;}
    
    
    }
  • Sto provando in ma niente ...
  • Non hai spiegato se conosci o meno le strutture.
  • Conosco solo la struttura dati,cioè il vettore
  • 1. Crei un vettore della stessa grandezza del primo
    
    int v2[100]
    2. Chiama una funzione che ti conta quante volte il valore i-esimo è presente nel primo vettore e ti stampa quante volte ha trovato il valore
    bool occorenzeValore(int v1[], int numero_elementiV1,int V2[],int numero_elementiV2,int valore)
    {
       int occorrenze = 0;
       for(int i=0;i < numero_elementiV2;i++)
       {
           if(V2[i]==valore)
           {
               return true;
           }
      }
      for(int i=0;i < numero_elementiV1;i++)
      {
           if(V1[i]==valore)
           {
               occorrenze++;
           }
      }
      cout << "Ci sono " << occorrenze << "occorenze del valore " << valore;
      return false;
    }
    3. inserisci il valore nel secondo vettore nel primo posto vuoto(che lo chiamiamo ricercato)
    if(!occorenzeValore(v1,numero_elementiV1,V2,numero_elementiV2,V1[i]))
    {
       V2[numero_elementiV2++] = V1[i];
    }
    Nel punto 3 l-if controlla se il valore esiste in V2. Se non esiste aumenta di 1 il numero di elementi di V2 e ci mette dentro il valore del i-esimo elemento di V1.
    4. Continua dal punto 2 per i +1
    Manca solo mettere insieme i pezzi.

    Ovvero nel main
    
    for(int i = 0; i < numero_elementiV1; i++)
    {
       if(!occorenzeValore(v1,numero_elementiV1,V2,numero_elementiV2,V1[i]))
       {
          V2[numero_elementiV2++] = V1[i];
       }
    }
    
  • 3)Creare un secondo vettore dato dal precedente e che elimini tutte le copie presenti
    Questo è il nostro vettore V2, quindi "mistero risolto"
Devi accedere o registrarti per scrivere nel forum
9 risposte