Escher ha scritto:
Come fai tu però non prendi un array b. prendi dei numeri o mi sbaglio?
Se ho capito giusto il problema è: per ogni numero contenuto in 'a' verifico se è divisibile per un elemento di 'b'. Quindi devi ripetutamente confrontare un numero con i valori contenuti in un array, per questo avevo fatto la funzione:
bool Divisibile(int n, int divisori[dimB])
{
for(int i = 0; i < dimB; i++)
{
if(n % divisori[i] == 0)
return true;
}
return false;
}
che riceve un numero e controlla se è divisibile per uno degli elementi contenuto nell' array 'divisori' (a cui passerai 'b').
A questo punto il ciclo principale diventa semplice (lo riscrivo tutto):
const int dimA = 8;
const int dimB = 4;
bool Divisibile(int n, int divisori[dimB])
{
for(int i = 0; i < dimB; i++)
{
if(n % divisori[i] == 0)
return true;
}
return false;
}
int divisione(int a[dimA], int b[dimB])
{
for(int i = 0; i < dimA; i++)
{
if (!Divisibile(a[i], b))
cout << a[i] << "\n";
}
return 0;
}
int main()
{
int a[dimA] = {2, 45, 37, 21, 6, 34, 35, 77};
int b[dimB] = {2, 3, 5, 11};
divisione(a, b);
return 0;
}
Dovrebbe stampare solo 37.