Funzione copia valori in vettore

di il
5 risposte

Funzione copia valori in vettore

Buonasera a tutti, ho questo esercizio da svolgere in c/c++
"Descrivere un algoritmo codificato in linguaggio C/C++ che:
1. definisce la funzione dividi con parametri:
a di tipo vettore di 100 int;
b di tipo vettore di 50 int;
c di tipo vettore di 30 int;
d di tipo int;
Si suppone che il vettore a contenga tutti valori distinti. La funzione deve copiare nel vettore b al più 50 valori del vettore a maggiori del valore contenuto nel parametro d e copiare nel vettore c al più 30 valori positivi del vettore a che non sono stati copiati nel vettore b. Inoltre, la funzione deve restituire con un’istruzione return il numero di valori copiati nel vettore c.
"
sono riuscito a fare fino a questo punto:
#include <iostream>
#define dim1 100
#define dim2 50
#define dim3 30
using namespace std;
int dividi (int a[dim1],int b[dim2], int c[dim3], int c)
{int i,j;
j=0;
for(i=0;i<dim1;i++)
{
if(a[i]>d)
{b[j]=a[i];
j++;
}
}
return conta;
}
però a questo punto non riesco a capire come fare per trovare quei valori che non siano stati copiati in b così da copiarli in c..
potete darmi una mano gentilmente?

5 Risposte

  • Re: Funzione copia valori in vettore

    Potresti fare tutto nel medesimo ciclo, ponendo i limiti corretti, tenendo a mente che nel caso peggiore potresti dover scorrere tutti e 100 i valori. Quando analizzi ogni singolo valore, se non può essere copiato da a in b ed è maggiore di 0 allora lo puoi subito copiare in c, facendo però attenzione a non andare a spasso nella memoria. Più di 50 valori in uno e 30 nell'altro non li devi mettere. Puoi usare un paio di variabili per tenere il conto, da incrementare e controllare ad ogni iterazione del for.
  • Re: Funzione copia valori in vettore

    Grazie mille! ho risolto.
    un'uiltima cosa, nella main devo scrivere le seguenti istruzioni e ho un dubbio sulla condizione all'interno del while.
    "2. nella funzione main
    I. dichiarare un vettore di nome x di 100 int, un vettore di nome y di 50 int e un vettore di nome z di 30 int;
    II. dichiarare una variabile di nome h di tipo int e una variabile di nome k di tipo int;
    III. inserire (uno per ogni posizione) 100 valori letti da standard input nel vettore x. Durante l’esecuzione inserire numeri distinti;
    IV. ripetere le seguenti operazioni fino a quando l’esecuzione della funzione dividi non inserisce valori nel vettore z:
    IV.a. inserire un numero letto da standard input nella variabile h;
    IV.b. eseguire la funzione dividi applicata al vettore x, al vettore y, al vettore z e alla variabile h, inserendo il risultato intero nella variabile k."

    così dovrebbe andare bene?
    int main()
    {
    	int x[dim1], y[dim2], z[dim3];
    	int i, m,n;
    
    	for (i = 0; i < dim1; i++)
    	{
    		cin >> x[i];
    	}
    	do {
    		cin >> m;
    		n = dividi(x, y, z, m);
    
    	} while (n<=0);
    	cout << x << y << z;
    
    	return 0;
    }
  • Re: Funzione copia valori in vettore

    Penso vada bene
  • Re: Funzione copia valori in vettore

    Ciao, posso sapere come hai risolto la prima parte? grazie...
  • Re: Funzione copia valori in vettore

    È una discussione di più di un anno fa...
Devi accedere o registrarti per scrivere nel forum
5 risposte