dunque questo è l'esercizio:
Prova 1
Siano assegnati in ingresso, da tastiera, due vettori di interi V1 e V2 ed un intero k.
Si scriva un programma che individui e stampi il valore val e la posizione pos del primo elemento di V1 il cui valore è maggiore dell’elemento di posto k del vettore V2.
Il programma deve essere articolato in funzioni (ad es.: input, output, trovaprimo).
Suggerimento: la funzione trovaprimo riceve in ingresso V1, V2 e k e restituisce come parametri di uscita val e pos.
Esempi
INPUT: V1 = 2 4 1 3 7 6 9 V2 = 3 4 5 12 1 6 k = 2
OUTPUT: val = 7 pos = 4
INPUT: V1 = 2 4 1 3 7 6 9 V2 = 3 4 5 12 1 6 k = 0
OUTPUT: val = 4 pos = 1
l'ho provato a fare cosi':
codice:
#include <stdlib.h>
#include <iostream>
using namespace std;
void input(int v[]);
void trovaprimo (int v1[], int v2[],int &val,int &pos,int k);
void output (int val, int pos);
int main()
{ int v1[7], v2[7];
int k;
int val,pos;
cout<< "inserire i valori del primo vettore\n\n\n";
input(v1);
cout <<"inserire i valori del secondo vettore\n\n\n";
input(v2);
cout << "inserire un valore intero\n";
cin>>k;
trovaprimo(v1,v2,val,pos,k);
output(val,pos);
system("PAUSE");
return 0;
}
void input (int v[])
{
int i;
for (i=0;i<7;i++)
cin>>v[i];
}
void trovaprimo (int v1[], int v2[],int &val,int &pos,int k)
{
int i,j;
j=0;
v2[k]=i;
while (v1[j]<=i)
{ j++;
}
val=v1[j];
pos=j;
}
void output (int val,int pos)
{
cout <<"il valore cercato è " << val << "e si trova nella posizione" << pos;
cout <<"\n\n";
}
ma non funzia. Vorrei capire dove ho sbagliato.
P.s: non si possono usare i puntatori ma solo gli indirizzi con il &...
ciao,
antonio