codice:
 
// arr.cpp
// 0.1.1 Added counter and fixed memory lack
#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, cnt = 0;
	
	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); }
			break;
		}
		else
		{
			printf("Tentativo %d : Numero sbagliato :(\n", cnt);
			if (DBG) { fprintf(stdout, "%d && %d\n", number, number_rand); }
			++cnt;
		}
		
	}while(1);
	
	free(arr_n);
	
	puts("Premi qualcosa per uscire");
	char esc;
	scanf("%c", &esc);
	
	return 0;
}
mia versione migliorata ;)