Salve a tutti,
devo fare un programma che carica un array di n posizione con numeri casuali da 0 a n+1,
e poi verificare quali numeri compresi tra 0 e n+1 non sono stati inseriti nell'array.
Il programma scritto da me sembra essere corretto (almeno per me) ma appena lo compilo (con codeblocks) come output mi da che tutti i numeri non sono presenti.
Questo è il mio codice:
#include <stdio.h>
int main() {
int n;
int *A;
int i;
int j;
int z;
srand (time(NULL));
printf ("quanti posti per il vettore? ");
scanf ("%d",&n);
A=(int*)malloc(n*sizeof(int));
for (i=0; i<n; i++) {
A[i]=rand() %n+1;
printf ("al posto %d = %d\n",i+1,A[i]);
}
for (i=0; i<n+1; i++) {
z=0;
for (j=0; j<n+1; j++) {
if (i==A[j]) {
break;
z=1;
}
}
if (z==0) {
printf ("il numero %d non nell'array\n",i);
}
}
return main();
}
Chi mi sa dire il perchè??