Programma con array!!!!

di il
6 risposte

Programma con array!!!!

Avrei bisogno di un aiuto per risolvere quest'esercizio
ecco il testo
Scrivere una funzione C++ che, dati due array di
interi positivi a e b, restituisce l’array c che si ottiene eliminando da a i valori
che sono divisibili per almeno un elemento di b.
Esempio: a={2,45,37,21,6,34,35}, e b={2,3}. Il metodo restituisce c={37,35}
(2 e’ divisibile per 2, 45 e’ divisibile per 3, 21 e’ divisibile per 3, 6 e’ divisibile
sia per 2 che per 3, 34 e’ divisibile per 2).

io ho provato a scrivere del codice ma so già di aver sbagliato riguardo alla seconda parte ossia (i valori che sono divisibili per ALMENO un elemento di b)
ho scritto solo la funzione void
il main non l'ho fatto ancora e quindi aspettavo un vostro aiuto
ecco il codice

bool funzione(int a[], int da, int b[], int db, int c[], int dc){
int i, j;
bool condizione=true;
i=0;
while(i<da){
j=0;
while(j<db){
dc=0;
if(a[i]%b[j]==0)
condizione=false;
else{
condizione=true;
dc++;
c[dc]=a[i];
}
j++;
}
i++;
}
}

6 Risposte

  • Re: Programma con array!!!!

    Che ne dici di iniziare ad imparare le strutture? Ti aiuterebbero in questi casi. Cmq la soluzione è semplice:
    
    x ogni elemento in a verifica se il mod con ogni elemento di b = 0 come stai già facendo.
    se condizione true aggiungi elemento a C
    fine.
    
  • Re: Programma con array!!!!

    Guarda con pocchi cambiamenti come diventa la funzione
    
    bool funzione(int a[], int da, int b[], int db, int c[], int dc)
    {
    	int i, j;
    	bool daInserire = false;
    	i=0;
    	while(i<da)
    	{
    		j=0;
    		while(j<db)
    		{
    			if(a[i]%b[j]!=0)
    				daInserire = true;
    			else
    				daInserire = false;
    			j++;
    		}
    		if(daInserire)
    		{
    			dc++;
    			c[dc]=a[i];	
    		}
    		i++;
    	}
    }
    
  • Re: Programma con array!!!!

    Guarda credo di aver capito quasi tutto, ma non mi è chiaro un particolare
    quando metti if(daInserire)
    daInserire essendo una variabile booleana che abbiamo inizializzato con false
    così sarebbe sbagliato, perchè andrebbe ad inserire nel nuovo array tutti i numeri il cui resto tra a e b è =0, invece dovrebbe essere il contrario
    quindi mi sa che andava scritto
    if(!daInserire)
    giusto ?
  • Re: Programma con array!!!!

    Guarda che ho cambiato il codice.
    
    if(a[i]%b[j]!=0)
    
  • Re: Programma con array!!!!

    Ok ho capito perfettamente e ti ringrazio
  • Re: Programma con array!!!!

    Ah scusa un'altra domanda
    ma nella dichiarazione di funzione tra i parametri nel caso non mettessi l'array c[] e la sua dimensione cosa succederebbe
    in fondo l'array c è ciò che mi devo trovare quindi che lo metto a fare nella lista dei parametri?
Devi accedere o registrarti per scrivere nel forum
6 risposte