Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    38

    divisione di un array in due array

    ciao ragazzi, sto facendo il seguente esercizio ma ho riscontrato un problema nel sottoprogramma "sdoppia" anche se non riesco a capire in cosa consiste. potreste darmi una mano?
    (l'esercizio da fare è spiegato nel main)

    sottoprogrammi:
    codice:
    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include "dichiarazioni.h"
    using namespace std;
    
    
    void inserisci_vet(int vet[],int riemp)
    {        
        cout<<"inserisci i tuoi valori\n";
        for(int i=0;i<riemp;i++)
        {
            cout<<"val "<<i<<": ";
            cin>>vet[i];
        } 
    }
    
    
    void stampa_vet(int vet[],int riemp)
    {
        cout<<"i valori contenuti nell'array sono:"<<endl;
        for(int i=0;i<riemp;i++)
        {
            cout<<"v["<<i<<"]: ";
            cout<<vet[i]<<endl;
        } 
    }
    
    
    void sdoppia(int vet[],int riemp,int v1[],int& r1, int& r2,int v2[])
    {
        r1=-1;
        r2=-1;
        for(int i=0;i<riemp;i++)
        {
            if(vet[i]%2==0) //pari
            {
                r1++;
                v1[r1]=vet[i];
            }    
            else //dispari
            {
                r2++;
                v2[r2]=vet[i]; 
            }
        } 
        cout<<r2<<","<<r1;
    }
    
    
    void stampa_prima_vetminimo(int v1[],int v2[],int r1,int r2)
    {
        if(r1<r2)
        {
            stampa_vet(v1,r1);
            stampa_vet(v2,r2);
        }
        else
            stampa_vet(v2,r2);
            stampa_vet(v1,r1);
    }
    dichiarazioni:
    codice:
    #ifndef DICHIARAZIONI_H
    #define DICHIARAZIONI_H
    
    
    #define nmax 100
    
    
    #endif /* DICHIARAZIONI_H */
    
    
    void inserisci_vet(int vet[],int riemp);
    void stampa_vet(int vet[],int riemp);
    void sdoppia(int vet[],int riemp,int v1[],int& r1, int& r2,int v2[]);
    void stampa_prima_vetminimo(int v1[],int v2[],int r1,int r2);
    main
    codice:
    /* Esercizio 2
    Siano assegnati in ingresso il riempimento e gli elementi di un array di interi. Si scriva un
    programma che, letto l’array in accordo a quanto specificato, copi in altri due vettori array i valori
    pari ed i valori dispari presenti nell’array. Si forniscano in uscita gli array ottenuti, stampando per
    primo il vettore con numero minore di elementi.
    Esempio:
    INPUT 8
    8 13 15 23 50 15 52 5
    OUTPUT
    Pari
    8 50 52
    Dispari
    13 15 23 15 5
    
    
     */
    
    
    /* 
     * File:   main.cpp
     * Author: emil
     *
     * Created on 19 ottobre 2016, 13.50
     */
    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include "dichiarazioni.h"
    using namespace std;
    
    
    int main()
    {
        int r1,r2;
        int riemp;
        int vet[nmax],v1[nmax],v2[nmax];
        
        cout<<"quanti valori vuoi immettere?\n";
        cin>>riemp;
        inserisci_vet(vet,riemp);
        stampa_vet(vet,riemp);
        sdoppia(vet,riemp,v1,r1,r2,v2); 
        stampa_prima_vetminimo(v1,v2,r1,r2);
    
    
        system ("pause");
        return 0;
    }
    grazie in anticipo!
    Ultima modifica di emix95; 19-10-2016 a 17:01

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.