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

#define MAX 1000 // numero maximo
#define DBG 1 // per il debug su off mettilo a 0
using namespace std;

int main()
{
	static unsigned int * arr_n = (unsigned int *) malloc(sizeof(unsigned int) * MAX);
	int i = 0;
	for(; i < MAX; ++i)
	{
		arr_n[i] = i;
	}
	srand(time(NULL));
	unsigned int number, number_rand;
	do
	{
		puts("Inserisci un numero a caso: ");
		scanf("%d",  &number);
		number_rand = arr_n[rand() % MAX];
		if(number == number_rand)
		{
			puts("Numero esatto :)");
			if (DBG) { fprintf(stdout, "%d && %d\n", number, number_rand); }
		}
		else
		{
			puts("Numero sbagliato :(");
			if (DBG) { fprintf(stdout, "%d && %d\n", number, number_rand); }
		}
	}while(1);
	return 0;
}
E in C++ ma basta poco per renderlo in C...2/3 cosettine ;)

Spero ti aiuti :D