Buongiorno, sto provando ad eseguire questo programma che mi dice se i numeri del mio vettore dinamico sono pari o dispari ma non mi riporta i risultati sperati. Potete aiutarmi a trovare l'errore? Grazie mille
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
int numero, *numeri=NULL, lunghezza=0;
int conta=0, new_conta=0;
int numeri_pari=0, numeri_dispari=0;
FILE *fd;
do {
printf ("Inserisci un numero: \n");
scanf ("%d", &numero);
if (numero>=0) {
numeri=(int*)realloc(numeri,++lunghezza*(sizeof(int)));
if (numero<0) {
printf ("Memoria insufficiente per allocare\n");
exit (1);
}
*(numeri+(lunghezza-1))=numero;
}
conta=conta+1;
new_conta=conta-1;
if (numero%2)
numeri_pari=numeri_pari+1;
else
numeri_dispari=numeri_dispari+1;
} while (numero>=0 || lunghezza==0);
printf ("\n");
printf ("I numeri inseriti sono %i\n", new_conta);
printf ("I numeri inseriti sono i seguenti\n");
for (i=0; i<new_conta; i++)
printf ("Numero %i: %d\n", i+1, numeri[i]);
fd=fopen("Numeri.txt", "w");
if (fd==NULL) {
perror ("Errore in apertura del file");
exit (1);
}
for (i=0; i<new_conta; i++)
fprintf(fd, "Numero %i: %d\n", i+1, numeri[i]);
fclose (fd);
printf("\n");
for (i=0; i<new_conta; i++)
if (numero%2) {
printf ("Il numero %d è pari\n", numeri[i], numeri_pari); }
else
printf ("Il numero %d è dispari\n", numeri[i], numeri_dispari);
return 0;
}