Sequenza C
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);
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);

Risposte
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);
d)
contatore=10;
somma=0;
while (contatore>0){
printf ("Inserisci un numero");
scanf ("%d",&numero);
somma=somma+numero;
contatore=contatore-1;
}
printf ("%d",somma);
Credo che la D calcoli la somma di 9 numeri...boh
Intanto è l'unica plausibile
Intanto è l'unica plausibile
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
10, 9 , 8, 7, 6, 5, 4, 3, 2, 1
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.
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.
"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
Perchè 10*11/2?
Comunque partendo da conta=10 e somma=0,volendo sommare 1+2+...10,finisco l'iterazione con conta=1 e somma=45!
$sum_(i=1)^n i = n*(n+1)/2$