Sequenza C

Sk_Anonymous
Quali delle seguenti sequenze di codice legge e calcola la somma di 10 numeri?
a)
conta=10;somma=0;
while (conta<10)
{ printf ("Inserisci un numero");
scanf ("%d",&numero);
somma=somma+numero;
contatore=contatore+1;
}
printf ("%d",somma);
b)
conta=0;somma=0;
while (conta<10)
{ printf ("Inserisci un numero");
scanf ("%d",numero);
somma=somma+1;
contatore=contatore+numero;
}
printf ("%d",somma);
c)
conta=0;somma=0;
while (conta>0)
{ printf ("Inserisci un numero");
scanf ("%d",&numero);
somma=somma+numero;
contatore=contatore-1;
}
printf ("%d",somma);
d)
conta=10;somma=0;
while (conta>0)
{ printf ("Inserisci un numero");
scanf ("%d",&numero);
somma=somma+numero;
contatore=contatore-1;
}
printf ("%d",somma);
:cry:

Risposte
Giova411
Mi sembra questo codice ma dovresti cambiare il nome della variabile "conta" in "contatore"

d)
contatore=10;
somma=0;
while (contatore>0){
printf ("Inserisci un numero");
scanf ("%d",&numero);
somma=somma+numero;
contatore=contatore-1;
}

printf ("%d",somma);

Sk_Anonymous
Credo che la D calcoli la somma di 9 numeri...boh

Intanto è l'unica plausibile

_luca.barletta
La risposta esatta è D e somma proprio 10 numeri, infatti entri nel ciclo while per i seguenti valori di contatore:

10, 9 , 8, 7, 6, 5, 4, 3, 2, 1

Sk_Anonymous
Anche io sono d'accordo,ma c'è una cosa che mi lascia dubbi.

Conta parte da 10.

Non appena vado ad inserire il primo numero conta=9.mi spiego meglio
supponiamo di voler sommare i primi 10numeri 1+2+...10

1 conta=9 somma=1
2 8 3
3 7 6
4 6 10
5 5 15
6 4 21
7 3 28
8 2 36
9 1 45

A questo punto non possiamo continuare perchè conta non può esssere 0;quindi abbiamo sommato9 numeri

Forse ho capito... al risultato dobbiamo sommare 10 perchè la variabile è stata inizializzata con tale valore.se è così ho capito.

_luca.barletta
"ENEA84":


1 conta=9 somma=1
2 8 3
3 7 6
4 6 10
5 5 15
6 4 21
7 3 28
8 2 36
9 1 45



No, nella prima iterazione conta=10, quindi arrivi all'iterazione 10 con conta=1 e somma = 10*11/2=55

Sk_Anonymous
Perchè 10*11/2?

Sk_Anonymous
Comunque partendo da conta=10 e somma=0,volendo sommare 1+2+...10,finisco l'iterazione con conta=1 e somma=45!

_luca.barletta
$sum_(i=1)^n i = n*(n+1)/2$

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.