Ciao! Ho svolto questo esercizio, qualcuno saprebbe dirmi se è giusto? che ho visto una soluzione un tantino diversa
Esercizio 1 (9 punti)
Scrivere un algoritmo codificato in linguaggio C/C++ che:
1. definisce la funzione Compresi con parametri:
• a di tipo vettore di 500 int;
• b di tipo vettore di 500 int;
• 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 elemento non esiste, la funzione deve scrivere nell’area di memoria puntata/riferita da d il numero -1.
2. nella funzione main
I. dichiara due vettori x e z di 500 int.
II. dichiara una variabile t di tipo int;
III. inserisce in tutte le posizioni del vettore x dei numeri interi letti da standard input.
IV. ripete le seguenti istruzioni che devono terminare quando l’esecuzione della funzione Compresi () inserisce nella variabile t il valore -1:
a. inserisce in tutte le posizioni del vettore z dei numeri interi letti da standard input.
b. eseguire la funzione Compresi () applicata al vettore x al vettore z inserendo il risultato nella variabile t;
#include <iostream>
using namespace std;
void compresi(int a[500], int b[500], int &d)
{
int i;
int j=0;
int conta=0;
for (i = 0; i < 500; i++)
{
if (a[i] <= b[j] && a[i] >= b[j])
{
d = i;
j++;
conta++;
}
}
if (conta == 0)
{
d = -1;
}
}
int main()
{
int x[500], z[500];
int i, t;
for (i = 0; i < 500; i++)
{
cin >> x[i];
}
do{
for (i = 0; i < 500; i++)
{
cin >> z[i];
}
compresi(x, z, t);
} while (t != -1);
return 0; }
Grazie!