Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C++]copiare elementi di un vettore su un altro vettore

    Ciao ragazzi, da poco sto studiando il C++ e mi servirebbe sapere un algoritmo che possa copiare ALCUNI elementi di un vettore su un altro vettore. Il testo vero e proprio dice di leggere da tastiera gli elementi del vettore1 e copiare nel vettore2 solo quelli minori di 0. Ho iniziato così

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int vettore1[5];
    int vettore2[5];

    cout<<"Inserisci gli elementi del vettore1: "<<"\n";
    for(int i=0;i<5;i++)
    cin>>vettore1[i];

    //la parte di codice sottostante dovrebbe copiare i valori minori di zero nel vettore 2 ma non
    // riesco a completarla

    for(int i=0;i<5;i++)
    if(vettore[i]<0)
    ?????????????????????? come devo continuare

    Grazie !

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Devi usare un altro indice (j) di destinazione per il vettore2 che parte da 0 e incrementi quando scrivi nel vettore2.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    ho provato così ma proprio non mi riesce :

    int j=0;
    int vettore2[5];

    for(int i=0;i<5;i++)
    if(vettore[i]<0)
    vettore[j]=vettore[i];
    j++;


  4. #4
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Originariamente inviato da Mephysto92
    ho provato così ma proprio non mi riesce :

    int j=0;
    int vettore2[5];

    for(int i=0;i<5;i++)
    if(vettore[i]<0)
    vettore[j]=vettore[i];
    j++;

    Usa i tag code, devi prima prendere in input gli interi come hai fatto prima con cin.
    Dopo fai un ciclo.
    Nel ciclo che stai facendo non c'è la graffa che specifica di che blocco fa parte il codice.
    Lo correggo:
    codice:
        for(int i=0;i<5;i++)
        {
            if(vettore[i]<0)
            {
                vettore[j]=vettore[i];
                j++;
             }
        }

  5. #5
    Grazie mille siete stati gentilissimi !!!!

    Avrei però un'altra domanda. Dato che quando inserisco da tastiera gli elementi minori di zero, questi potrebbero essere in numero inferiore rispetto all'ampiezza del vettore, quando faccio un ciclo "for" per visualizzare gli elementi che ci sono nel vettore, mi fa vedere ovviamente anche dei numeri casuali. Como posso evitare che ciò accada e fare in modo che l'ampiezza del vettore sia pari ai numeri negativi che inserisco ??

    Scusate se sono un novellino incapace

  6. #6
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    In pratica stai dicendo di prendere il valore assoluto preso in input?
    Se non sbaglio in math.h c'è la funzione valore assoluto (abs) , ma puoi costruirtela te una funzione se ti va.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da Mephysto92
    ...quando faccio un ciclo "for" per visualizzare gli elementi che ci sono nel vettore, mi fa vedere ovviamente anche dei numeri casuali...
    I numeri negativi inseriti li hai in (j-1) ... non capisco il problema ... quale codice hai scritto per visualizzare i numeri negativi ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    codice:
    cout<<"Gli elementi che appartengono al vettore vettore2 sono:"<<"\n"; 
               for(int j=0;j<5;j++) 
                cout<<V2[j];

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    No .... ragiona ... non sono 5 ma quanti ne ha contato j-1 (se j>0) ...

    Quindi

    codice:
    if(j>0)
       for(int k=0; k<(j-1); k++) 
          cout<<V2[k];
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.