PDA

View Full Version : [C ] Aiuto su programma..


Claudio19488
02-06-2009, 16:57
Ciao a tutti
sono di nuovo in crisi su un altro semplice (per voi) programma..

Il testo mi chiede di inserire una sequenza di numeri positivi (zero per terminare) e di restituire la somma degli ultimi 3 numeri (zero escluso)..

#include<stdio.h>

int main(){
int n,somma,i;
printf("Inserisci una serie di numeri positivi, 0 per terminare\n");


somma=0;
i=0;
scanf("%d",&n);
while (n>0) {

somma=somma+n;
i++;
scanf("%d",&n);
}

printf("%d",somma);
}

Fino qui ho trovato il modo di ottenere la somma dei numeri, ma come faccio a dire al programma di sommare solo gli ultimi 3 ? :help:

Ringrazio in anticipo per le risposte e per la pazienza..

DanieleC88
02-06-2009, 21:51
Personalmente farei un'array di tre elementi:
int somma[3] = {0, 0, 0};
All'inizio ovviamente la somma dei suoi elementi è zero, come ti aspetteresti.
Poi, introdurrei un numero che fa da indice:
int i = 0;
e ad ogni lettura lo incrementerei di 1, ovviamente però facendo sempre attenzione che torni "circolarmente" all'inizio una volta arrivato al valore 3 (che come indice sarebbe il quarto elemento dell'array, che ovviamente non esiste):
int n = LeggiNumero();

if (n == 0)
{
break;
}

somma[i]
i = (i + 1) % 3;
In ogni momento dell'esecuzione l'array conterrà gli ultimi 3 numeri inseriti, ovviamente poi puoi fare una banale somma per sapere ciò che ti interessa:
printf("La somma è %d.\n", somma[0] + somma[1] + somma[2]);
Ovviamente gli ultimi tre numeri non è detto che siano in ordine di inserimento, ma tu vuoi sapere solo qual'è la somma, quindi dell'ordine te ne puoi fregare allegramente.

ciao ;)