Ciao! Ho questo tema d'esame da svolgere:
Definisci la funzione compresi con parametri: a e b di tipo vettore di 10 interi e d di tipo puntatore/riferimento ad un int. Scrivere nell'area di memoria puntata/riferita da d la posizione di un qualsiasi elemento del vettore a compreso (estremi inclusi) tra almeno due elementi del vettore b. Se tale valore non esiste la fuzione deve scrivere in d il valore -1.
Nel main bisogna dichiarare due vettori x e z di 10 interi + una variabile int t ed inserire nel vettore x numeri letti da standard input. Successivamente disogna ripetere le seguenti istruzioni fino a quando la funzione compresi() inserisce nella variabile t il valore -1: a) riempire il vettore z con valori letti da standard input b) eseguire la funzione compresi() applicata al vettore x,al vettore z inserendo il risultato in t.
Volevo sapere se andava bene come avevo svolto l'esercizio oppure se al posto di b[j+1] nell'if avrei dovuto mettere un b[k] aggiungendo il ciclo for corrispondente?
#include <iostream>
using namespace std;
void compresi(int a[10], int b[10], int &d)
{
int i, conta, j;
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
conta = 0;
if (b[j] <= a[i] && a[i]<=b[j+1])
{
conta++;
}
}
if (conta == 1)
{
d = i;
}
else { d = -1; }
}
}
int main()
{
int z[10], x[10], t=0, i;
for (i = 0; i < 10; i++)
{
cin >> x[i];
}
do{
for (i = 0; i < 10; i++)
{
cin >> z[i];
}
compresi(x, z, t);
} while (t != -1);
return 0;
}