Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    [C++] Vettore Pari e Dispari

    Salve, ho un problemino con un esercizio di informatica di c++.
    Mi sto preparando ad un esame e quindi mi sto esercitando molto.
    Il problema è che sono bloccato su questo esercizio da molto tempo e ci ho passato innumerevoli ore per cercare di farlo funzionare. Comunque vi inizio a dare il testo:


    Assegnati i vettori di interi VETT1 di cardinalità 16 e riempimento N e VETT2 di cardinalità 23 e di riempimento M ottenere:
    - Il vettore PARI costituito dagli elementi di VETT1 e VETT2 di valore pari;
    - Il vettore DISP costituito dagli elementi di VETT1 e VETT2 di valore dispari;
    - Il massimo di PARI;
    - Il minimo di DISP;
    - Il valore medio di tali massimo e minimo;


    Esempio:




    N=4
    VETT1= 1 2 3 4
    M=7
    VETT2= 5 6 7 8 9 1 2


    PARI= 2 4 6 8 2
    DISP= 1 3 5 7 9 1
    MAX= 8
    MIN= 1
    MEDIA= 4.5



    Ecco invece il mio esercizio con i commenti per capire cosa ho "combinato":


    codice:
    #include <iostream>
    using namespace std;
    
    
    
    
    int main() {
        
        
    //******************************************************************************
        // RIEMPIMENTO e CARDINALITA' VETT1
        int VETT1[16];
        int N= 0;
        cout<< "Inserisci il numero di riempimento del primo Vettore: ";
        cin>> N;
        
        // INIZIALIZZIAMO VETT1
        for(int i=0; i<N ; ++i) {
        int conta;        
        cout<< "Inserisci il valore dell'elemento ";
        cout<< i;
        cout<< ": ";
        cin>> conta;
        VETT1[i]=conta;}
        
        
        // RIEMPIMENTO e CARDINALITA' VETT2
        int VETT2[23];
        int M= 0;
        cout<< "Inserisci il numero di riempimento del secondo Vettore: ";
        cin>> M;
        
        // INIZIALIZZIAMO VETT2
        for(int i=0; i<M ; ++i) {
        int conta;        
        cout<< "Inserisci il valore dell'elemento ";
        cout<< i;
        cout<< ": ";
        cin>> conta;
        VETT2[i]=conta;}
    
    
    //******************************************************************************
        
    //CALCOLO IL VETTORE PARI DA VETT1
        
        int ari=0;
        int VETTP[ari];
        for (int c=0; c<N; c++) {
            if (VETT1[c] % 2 == 0) {
                         VETTP[ari] = VETT1[c];
                         ari = ari+1;}
            }
     
     ari = ari ;
    //CALCOLO IL VETTORE PARI DA VETT2    
        for (int c=0; c<M; c++) {
            if (VETT2[c] % 2 == 0) {
                         VETTP[ari] = VETT2[c];
            ari = ari + 1;}
            }    
        
    //CALCOLO IL VETTORE DISPARI DA VETT1
        int ispari= 0;
        int VETTD[ispari];
        for (int c=0; c<N; c++) {
            if (VETT1[c] % 2 != 0) {
                         VETTD[ispari] = VETT1[c];
                         ispari = ispari+1;}
            }
     
     ispari = ispari ;
    //CALCOLO IL VETTORE DISPARI DA VETT2    
        for (int c=0; c<M; c++) {
            if (VETT2[c] % 2 != 0) {
                         VETTD[ispari] = VETT2[c];
            ispari = ispari + 1;}
            }    
            
    //******************************************************************************    
    
    
    
    
    
    
    
    
    
    
       // VISUALIZZA I VETTORI PARI E DISPARI 
    for (int v=0; v < ari; v++) {
        cout << "I pari sono rispettivamente:" << VETTP[v] << "\n";}
        
    for (int v=0; v < ispari; v++) {
        cout << "I dispari sono rispettivamente:" << VETTD[v] << "\n";}
        
       // CALCOLO IL MASSIMO DEI PARI  (NON FUNZIONA ANCORA)
       int MAX;
       MAX = VETTP[0];
       int TOT;
       for (int c=0; c < ari; c++) {
           if (MAX < VETTP[c] ) { MAX = TOT;}
    
    
           }
        cout << "Il Maggiore e' : " << TOT;
       
       
       // CALCOLO IL MINIMO DEI DISPARI
       
       
       
       
       
       //CALCOLO LA MEDIA TRA IL MASSIMO DEI PARI E IL MINIMO DEI DISPARI
    
    
        
        
    
    
    
    
    cout<<"\n";
    system("PAUSE");
    return 0;
        
    }

    A prima vista sembrerebbe funzionare, ma quando inserite ad esempio i valori nel VETT1 " 5 4 3 2 1 " NON FUNZIONA, (quello dispari invece si) mentre quando li inserite così "1 2 3 4 5" FUNZIONA. Mi sono scervellato al massimo, spero che qualcuno di voi mi sappia aiutare gentilmente.




    GRAZIE A TUTTI PER LA COLLABORAZIONE!!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Quote Originariamente inviata da Fabrollo Visualizza il messaggio
    Salve, ho un problemino con un esercizio di informatica di c++.
    Mi sto preparando ad un esame e quindi mi sto esercitando molto.
    Ma non stavi aiutando tuo fratello? :-)

    ma quando inserite


    Che vuoi dire? I valori vanno inseriti ognuno seguito da return

    5
    4
    3
    2
    1

    In ogni caso queste linee

    int ari=0;
    int VETTP[ari];

    int ispari= 0;
    int VETTD[ispari];


    non vanno bene perché un vettore non può avere dimensione 0

    E questa

    ispari = ispari ;

    non ha senso
    Ultima modifica di oregon; 23-11-2013 a 12:02
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Quote Originariamente inviata da oregon Visualizza il messaggio
    int ari=0;
    int VETTP[ari];

    int ispari= 0;
    int VETTD[ispari];


    non vanno bene perché un vettore non può avere dimensione 0
    Direi che non è l'unico problema di quelle righe...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  4. #4
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma non stavi aiutando tuo fratello? :-)
    Aahaha si Ciao Oregon Si è sempre per lui, ma prima devo capire io ahah
    Quote Originariamente inviata da oregon Visualizza il messaggio


    Che vuoi dire? I valori vanno inseriti ognuno seguito da return

    5
    4
    3
    2
    1

    In ogni caso queste linee

    int ari=0;
    int VETTP[ari];

    int ispari= 0;
    int VETTD[ispari];


    non vanno bene perché un vettore non può avere dimensione 0

    E questa

    ispari = ispari ;

    non ha senso
    In che senso ognuno seguito da return?
    Intendi così:

    ESEMPIO:
    for (int c=0; c<M; c++) { if (VETT2[c] % 2 == 0) {
    VETTP[ari] = VETT2[c];
    ari = ari + 1;
    return 0;}
    }
    Ultima modifica di Fabrollo; 23-11-2013 a 14:54

  5. #5
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Direi che non è l'unico problema di quelle righe...
    Intendi che non si capisce niente? Aahaha sono alle prime armi comunque
    Cosa non va ?

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Seguito da return -> seguito da ritorno a capo -> seguito da '\n'
    No, il problema è che in C++ la dimensione dei vettori deve essere una costante...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Intendevo dal tasto Return (Invio) ... non
    5 4 3 2 1 Invio
    ma
    5 Invio
    4 Invio
    3 Invio

    e così via

    In ogni caso guarda il dimensionamento dei vettori
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Intendevo dal tasto Return (Invio) ... non
    5 4 3 2 1 Invio
    ma
    5 Invio
    4 Invio
    3 Invio

    e così via

    In ogni caso guarda il dimensionamento dei vettori
    Ma infatti faccio così, non è quello il problema.

    Come ho spiegato mettendo in input i numeri in ordine decrescente l'output del PARI non funziona bene, da numeri sballati, mentre se li metto in ordine crescente funziona dandomi tutti i numeri pari anche in ordine, mentre i numeri DISPARI me li da sempre in ogni caso.

    Non è che avete qualche consiglio da darmi per ripararlo oppure un modo più semplice per rispondere adeguatamente alla traccia dell'esercizio?

    Grazie!

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Scusa ma a proposito di consigli, di quello che ti ho scritto in

    int ari=0;
    int VETTP[ari];

    int ispari= 0;
    int VETTD[ispari];


    non vanno bene perché un vettore non può avere dimensione 0



    che mi dici?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Scusa ma a proposito di consigli, di quello che ti ho scritto in

    int ari=0;
    int VETTP[ari];

    int ispari= 0;
    int VETTD[ispari];


    non vanno bene perché un vettore non può avere dimensione 0



    che mi dici?
    Scusami, non ti avevo avvertito che ho già corretto! Ma non era quello il problema evidentemente :S

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.