[C] Esercizio: conteggio dei valori pari

di il
11 risposte

[C] Esercizio: conteggio dei valori pari

Ciao a tutti, da poco ho iniziato a programmare in linguaggio C e sto avendo un problema con un esercizio.
Scrivere un programma in linguaggio C che, data una serie di numeri interi positivi inseriti da tastiera la cui terminazione è indicata dall'inserimento del valore -1, calcoli e visualizzi il numero di valori pari inseriti dall'utente e il numero totale dei valori inseriti.
Vi lascio di seguito ciò che sono riuscito a fare, non capisco cosa ho sbagliato. Vi ringrazio in anticipo.

#include<stdio.h>
int main(void) {
	int n = 0, sommap, sommat;
	sommap = 0, sommat = 1;
	printf("Data una serie di numeri interi positivi; calcolare la somma dei valori pari e quella totale.\n");
	for (; n != -1;) {
		if (n % 2 == 0); {
			sommap += n;
		}
		printf("Inserire un numero intero(-1 per terminare): ");
		scanf("%d", &n);
		sommat += n;
	}
	printf("\nRisultato pari:%d", sommap);
	printf("\nRisultato totale:%d\n", sommat);
}

11 Risposte

  • Re: [C] Esercizio: conteggio dei valori pari

    Spiega cosa non va

    E comunque controlla la if ... non è scritta correttamente
  • Re: [C] Esercizio: conteggio dei valori pari

    Il problema è che quando eseguo il programma e inserisco 5 numeri, 3 dei quali pari, in out mi dà lo stesso risultato per tutte e due le somme.
  • Re: [C] Esercizio: conteggio dei valori pari

    Perchè sommat parte da 1 e non da 0 ?
    Perchè sommap viene aggiornato prima di leggere n, mentre sommat viene aggiornato dopo aver letto n?
  • Re: [C] Esercizio: conteggio dei valori pari

    Ho aggiornato il codice e ho messo la scanf prima dell'if. Ho inserito sommap prima di sommat e nel blocco dell'if per fare in modo che il suo valore venga incrementato solo se il numero è pari e credo di aver scritto bene la condizione dell'if(n%2==00 vuol dire che il resto della divisione del numero per 2 è 0 quindi il numero è pari), mentre il sommat l'ho messo fuori dal blocco dell'if per incrementare il suo valore con qualunque numero inserito dall'utente ma ho comunque lo stesso problema. Alla fine i due risultati mi vengono uguali e non riesco a capire il motivo. Vi prego aiutatemi in qualche modo perchè ci sto uscendo pazzo da 2 giorni.
  • Re: [C] Esercizio: conteggio dei valori pari

    Posta il nuovo codice
  • Re: [C] Esercizio: conteggio dei valori pari

    /*Scrivere un programma in linguaggio C che, data una serie di numeri interi positivi inseriti da tastiera la cui terminazione è indicata dall'inserimento del valore -1, calcoli e visualizzi il numero di valori pari inseriti dall'utente e il nuemero totale dei valori inseriti.*/
    #include<stdio.h>
    int main(void) {
    	int n = 0, sommap, sommat;
    	sommap = 0, sommat = 0;
    	printf("Data una serie di numeri interi positivi; calcolare la somma dei valori pari e quella totale.\n");
    	for (; n != -1;) {
    		printf("Inserire un numero intero(-1 per terminare): ");
    		scanf("%d", &n);
    		if (n % 2 == 0); {
    			sommap += n;
    		}
    		sommat += n;
    	}
    	printf("\nRisultato pari:%d", sommap);
    	printf("\nRisultato totale:%d\n", sommat);
  • Re: [C] Esercizio: conteggio dei valori pari

    Ad ogni ciclo inserisci una printf() così:
       for (; n != -1;) {
          printf("Inserire un numero intero(-1 per terminare): ");
          scanf("%d", &n);
          if (n % 2 == 0); {
             sommap += n;
          }
          sommat += n;
          printf("valore inserito %d sommap parziale %d sommat parziale %d\n", n, sommap, sommat ); /* ******** */
       }
    
    esegui e scoprirai che...
  • Re: [C] Esercizio: conteggio dei valori pari

    Ti avevo detto di controllare la if ...

    Secondo te il ; finale della if è corretto?
  • Re: [C] Esercizio: conteggio dei valori pari

    Finalmente ci sono riuscito!!! Aveva ragione oregon, avevo scritto giusto il codice ma non serviva il ; dopo l'if. Comunque candaluar ho provato anche come mi hai detto tu ma non risultava lo stesso. Grazie tantissimo ad entrambi.
  • Re: [C] Esercizio: conteggio dei valori pari

    Comunque candaluar ho provato anche come mi hai detto tu ma non risultava lo stesso
    Il mio suggerimento non era per darti la soluzione ma bensì per darti un modo per trovarla da solo; mi sorprende che tu non l'abbia capito .
  • Re: [C] Esercizio: conteggio dei valori pari

    @candaluar ... a me non sorprende ...
Devi accedere o registrarti per scrivere nel forum
11 risposte