Aiuto! programma di ricerca

di il
3 risposte

Aiuto! programma di ricerca

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è??

3 Risposte

  • Re: Aiuto! programma di ricerca

    Il break esce dal ciclo for, dunque va dopo l'istruzione z = 1
  • Re: Aiuto! programma di ricerca

    Ho risolto!!! non so se era quello che intendevi te...
    basta mettere z=1 prima di "break" e funziona
  • Re: Aiuto! programma di ricerca

    Si, intendevo proprio quello.. Altrimenti esci dal ciclo, e l'istruzione z = 1 non viene eseguita
Devi accedere o registrarti per scrivere nel forum
3 risposte