Salve ho questo esercizio

Scrivere un programma in c++ che:

1)estrazione di un numero casuale da 0 a 100 che sia x
2) lettura da input di una sequenza di numeri terminata da -1
3) Contare quante volte nella sequenza letta la somma di due numeri consecutivi è pari ad x; sia il risultato del conteggio z: stampare z in output.

esempio: si suponga estratto x=5, si supponga che la sequenza è: 3 2 1 4 1 3 2 3 -1: si dovra stampare z=5

io l'ho fatto cosi ma ce qualcosa che no va:

codice:
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;
void numeroCasuale (int&);
int main() {
	srand (time(NULL));
	int x,a,z;
	int cont,cont2=0;

	numeroCasuale (x);
	cout<<x<<endl;

	while (a!=-1)
	{
		cin>>a;
		cont=a;
		cont2+=cont;

	}
cout<<cont2;
	return 0;
}
void numeroCasuale (int& x){
	x =rand ()%100+1;
}

GRAZIE