Se vuoi controllare sia che la scanf abbia effettuato l'assegnamento, sia che la variabile letta sia positiva, un modo di precedere è il seguente (nota l'sitruzione fflush(stdin) che serve per svuotare il buffer di input, che altrimenti può dare problemi quando si leggono caratteri)

codice:
	int res = 0;
	int ok;
	do{
		ok = 0;
		fflush(stdin);
		printf("Inserisci il numero: ");
		ok = scanf("%d", &res);
		if(ok == 0)
			continue;
		if(res <= 0)
			printf("\nIl numero deve essere positivo!: ");
	}
	while(res <= 0);