Premetto che il programma che mi sono prefissato di fare è più complesso della traccia di partenza e dovrebbe essere perfezionato soprattuto per l'output di quando non trova alcun valore..
Comunque il programma che ho creato fin qui mi da' il seguente waring durante la compilazione(ambiente devc++):
In function `void trovaprimo(int, int, float*, float*, int&, float&)
63 [Warning] assignment to `int' from `float'
63 [Warning] argument to `int' from `float'

Mi spiegate la natura dell'errore?!?...
Grazie!

codice:
/*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
*/


#include<iostream>
using namespace std;
#include<stdlib.h>

//Prototipi delle funzioni
void input(int&z, int&k, int&n ,int&t, float v1[],float v2[]);
void trovaprimo(int n, int k,float v1[], float v2[], int &pos, float &val);
void output(int pos, float val);

int main()
{
    int k;
    int n;
    int t,z;
    float v1[100];
    float v2[100];
    float val;
    int pos;
    
    //Chiamate delle funzioni
    input(z,k,n,t,v1,v2);
    trovaprimo(n,k,v1,v2,pos,val);
    output(pos,val);
    
    
    cout<<"\n\n";
    
    system("PAUSE");
    return 0;
}

void input(int&z, int&k, int&n ,int&t, float v1[],float v2[])
{
    int i;
    
    cout<<"Assegna valore intero al numero di elementi del primo vettore \n";
    cin>>n;
    
    cout<<"Assegna "<<n<<" valori reali al primo vettore\n";
    for(i=0;i<n;i++)
    {
        cin>>v1[i];
    }
    
    cout<<"Assegna valore intero al numero di elementi del secondo vettore\n";
    cin>>t;
    
    cout<<"Assegna "<<n<<" valori reali al secondo vettore\n"; 
    for(z=0;z<t;z++)
    {
        cin>>v2[z];
    }
    
    cout<<"Assegna valore intero a k\n";
    cin>>k;
}

void trovaprimo(int n, int k,float v1[], float v2[], int &pos, float &val)
{
    int i;
    int j;
    
    i=0; j=v2[k];
    while(i<n && v1[i]<j) //Posso scrivere direttamente v1[i]<v2[k]? Se no, perchè?
    {
        val=v1[i];
        pos=i;
        i++;
    }
}

void output(int pos, float val)
{
    cout<<"val= "<<val<<"\t";
    cout<<"pos="<<pos<<"\n";
}