PDA

Visualizza la versione completa : [C] Inserimento addendi ed errore in ciclo


ilmagnifico91
14-03-2012, 17:25
#include<stdio.h>
#include<stdlib.h>
int N,i,somma,prodotto,addendo;
void main ()
{
do
{
printf("inserisci il numero degli addendi \n");
scanf("%d",&N);
}
while(N<6);
i=0;
somma=0;
prodotto=1;
do
{
printf("inserisci il numero dell addendo %d",i++);
scanf("%d",&addendo);
if(addendo%2==0)
{
i=i+1;
prodotto=prodotto*addendo;
}
else
{
i=i+1;
somma=somma+addendo;
}
}
while(i<N);
printf("somma %d \n prodotto %d",somma,prodotto);
system("pause");
}


Quando faccio il debug...una volta che arrivo a printf("inserisci il numero dell addendo %d",i++); il contatore gira facendo però la metà dei giri che dovrebbe fare...qualcuno mi sa aiutare?
P.S. è la prima volta che scrivo qualcosa in C ...grazie in anticipo :)

ilmagnifico91
14-03-2012, 17:48
risolto erano i++ nell'if else a dare problemi

torn24
14-03-2012, 17:56
ciao, devo dire che il programma in se non ha molto senso , in quanto protrebbe non
eseguire nessun prodotto , se i numeri inseriti sono tuttii dispari , e non eseguire nessuna
somma , se i numeri inseriti sono tutti pari .
comunque
in questo codice

printf("inserisci il numero dell addendo %d",i++);


mostri il valore di i e poi incrementi , quindi se i è 0 mostri zero e poi porti i a 1,
cosa che credo tu non voglia fare , per mostrare il valore di i piu' uno devi scrivere


printf("inserisci il numero dell addendo %d",i+1);


che mostra il valore di i più uno , ma non incrementa i

alka
15-03-2012, 10:08
Originariamente inviato da ilmagnifico91
Linguaggio C ... piccolo problema :D

Usa titoli più significativi per le discussioni, e formatta il codice sorgente.

Per queste e altre indicazioni da seguire, leggi il Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887).

Loading