Programma in C (123456)

di il
5 risposte

Programma in C (123456)

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;
}

5 Risposte

  • Re: Programma in C (123456)

    If (numeri[ i ]%2==0)
  • Re: Programma in C (123456)

    Anche apportando questa modifica mi dice che tutti i numeri (anche quelli dispari) sono pari. Non so cosa ho sbagliato
  • Re: Programma in C (123456)

    Ho risolto facendo if (numeri%2==0). Grazie mille per il vostro aiuto
  • Re: Programma in C (123456)

    Ant12345 ha scritto:


    Ho risolto facendo if (numeri%2==0). Grazie mille per il vostro aiuto


    usa il tag code che sennò non si capisce cosa hai fatto di diverso...

    if (numeri[i]%2==0)
    In generale evita di usare due variabili che differiscono per la vocale finale
  • Re: Programma in C (123456)

    Esatto e poi fai sempre lo stesso errore... non hai compreso che devi utilizzare l'array...
Devi accedere o registrarti per scrivere nel forum
5 risposte