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...