Pingo ha scritto:


Ho testato il programma, solo per curiosità e il caso che esponi tu non sussiste, neanche cambiando la variabile n con z
L'utente mette n = 1 e poi var = 0 come primo numero. Cosa succede?

for (k = 0; k < n; k++) {
			if (var == v[k]) {
				flag = 1;
			}
}
La flag viene alzata e zero ti viene rifiutato anche se è il primo numero.
Se var == v[0] == valore indefinito (MA che puoi vedere con un debugger) perché non hai inizializzato v, flag va a 1.
Viceversa se usi k < z, 0 < 0 è falso, quindi esce subito dal for e la flag rimane a zero.

Ma poi perché n? Cioè tu vuoi fare n controlli prima ancora di fare n acquisizioni? E con cosa confronti il tuo var? Fai un po' come credi...