PDA

Visualizza la versione completa : [C] Analisi programma....Spiegazioni!


andrea_NET-_DSL
05-12-2003, 14:57
Ciauz a tutti ancora :ciauz:

Analizziamo il seguente programma in C (esegue la sommatoria di n numeri)


#include <stdio.h>
int main(void) {
int i, x, n, somma=0;

printf("Quanti numeri? ");
scanf("%d", &n);
printf("Inserisci %d numeri interi: ", n);
for (i=1; i<=n; i++) {
scanf("%d", &x);
somma += x;
}
printf("La somma dei numeri letti in input e' %d.\n", somma);
return(1);
}


A cosa serve la funzione di lettura (scanf("%d", &x) ; dopo il ciclo FOR...cioè in quel punto cosa rappresenta e che utilità ha? :confused: si puo' eliminare?

Inoltre somma += x; cosa fà?somma alla var somma 1??ma per aggiungere un'unità nn bisogna usare nome_var++ ? :confused:

grazie :ciauz:

}gu|do[z]{®©
05-12-2003, 15:01
scusa.. ma lasommatoria come la fai senza leggere i numeri?

in x vengono letti i numeri da tastiera [uno ad ogni esecuzione del ciclo] e le somme vengono accumulate in somma


somma += x

vuol diure

somma= somma + x


:ciauz:

andrea_NET-_DSL
05-12-2003, 15:07
Originariamente inviato da }gu|do[z]{®©
scusa.. ma lasommatoria come la fai senza leggere i numeri?

in x vengono letti i numeri da tastiera [uno ad ogni esecuzione del ciclo] e le somme vengono accumulate in somma


somma += x

vuol diure

somma= somma + x


:ciauz:
sisi certo....ma allora lo scanf della x deve essere per forza sotto il for giusto?cioè sopra non andrebbe perchè ad ogni ciclo deve leggere e accumulare sulla var di appoggio....giusto? :gren:

:)

}gu|do[z]{®©
05-12-2003, 15:10
Originariamente inviato da andrea_NET-_DSL
sisi certo....ma allora lo scanf della x deve essere per forza sotto il for giusto?cioè sopra non andrebbe perchè ad ogni ciclo deve leggere e accumulare sulla var di appoggio....giusto? :gren:

:)

certo.. la x cambia ad ogni iterazione del for... altrimenti non sarebbe una sommatoria ma la somma di un numero con se stesso n volte... ovvero una moltiplicazione x*n :fagiano:

LeleFT
05-12-2003, 17:47
Forse è meglio capire una cosa:

for (<inizializzazione>;<guardia>;<incremento>) {
// istruzioni da eseguire
}

Questa è la sintassi dell'istruzione for (o meglio, una sua precisa forma, non è l'unica).

Significa che devono essere eseguite tutte le istruzioni comprese fra l'aperta parentesi graffa fino alla chiusa parentesi graffa un certo numero di volte.


Ciao.

Loading