Buon giorno, vorrei realizzare una somma progressiva di n numeri, mediante ciclo for.
Ho un problema, con l'utilizzo dei puntatori, poichè la sequenza inizia sfalsata e non comprendo perchè,invece se non li adopero il risultato è corretto.Grazie dell'aiuto
Sequenza corretta:
#include <stdio.h>
//Somma dei n numeri in progressione
void SommaProgressiva(int Contatore);//Creazione Prototipo
void main(void)
{
int Step;//Inizializzazione del conteggio
printf("Inserisci Quanti Numeri devi sommare in sequenza");
scanf(" %d", &Step);
SommaProgressiva( Step);//Chiamata alla funzione
}
void SommaProgressiva(int Contatore)
{
int Somma=0;
int SommaPrecedente=0;
for(int i=1;i<=Contatore;i++)
{
if (i >=0 && i <Contatore)
{
Somma=SommaPrecedente + i;
printf("Il Valore parziale e:%d = %d + %d \n",Somma,i,SommaPrecedente);
SommaPrecedente=Somma;//Reimposto il valore parziale di somma
}
else
{
Somma=SommaPrecedente + i;
printf("Il Valore finale e:%d = %d + %d \n",Somma,i,SommaPrecedente);//Valore finale
}
}
}
//Sequenza Errata
#include <stdio.h>
// Somma dei numeri in progressione
void SommaProgressiva(int Contatore);
int main(void) {
int Step; // Inizializzazione del conteggio
printf("Inserisci quanti numeri devi sommare in sequenza: ");
scanf("%d", &Step);
SommaProgressiva(Step);
return 0;
}
void SommaProgressiva(int Contatore) {
int SommaPrecedente = 0;
printf("Somma Iniziale: %d\n", SommaPrecedente);
for (int i = 1; i <= Contatore; i++) {
SommaPrecedente += i;
printf("Il valore parziale è: %d (aggiungendo %d)\n", SommaPrecedente, i);
}
printf("La somma finale è: %d\n", SommaPrecedente);
}