Oppure

Loading
07/06/09 21:49
gighen991
ciao ragazzi!! ho un problema con questo esercizio... il testo è questo.. Scrivete un programma che sommi una sequenza di interi. Supponete che il primo intero letto con la scanf specifichi il numero dei valori che dovranno essere immessi. il vostro programma dovrà leggere solo un valore per ogni volta che la scanf sarà eseguita. Una tipica sequenza potrebbe essere:
5 100 200 300 400 500
dove 5 indica che dovranno essere sommati i 5 valori successivi...

grazie in anticipo!! :heehee:
aaa
07/06/09 22:42
theprogrammer
Grazie ... in che senso?

Pensi che qualcuno ti faccia i compiti e basta?

Prova un po' tu a sbatterci la testa, proponi del codice e, se è il caso, si corregge tutti insieme ...
aaa
08/06/09 9:55
gighen991
scusate ma ieri sera mi hanno cacciato a letto e mi sono dimenticato di linkare il codice perchè lo stavo sistemando... eccolo cmq..

#include <iostream>
#include <stdio.h>

int numero,I,somma;

int main()
{
printf("inserisci il numero dei valori immessi: ";);
printf("\nnumero uguale a quello dei valori x terminare: ";);
scanf("%d", &numero);

while (I != numero){
printf("inserisci il valore";);
scanf("%d", &I);
}
somma=I
printf("la somma e: %d\n", somma);

system("pause";);
return 0;
}

il problema è che se metto somma = I mi legge solo l'ultimo valore immesso senza sommarmi tutti i valori immessi....
aaa
08/06/09 10:07
ciao!

il problema come hai ben detto tu è che somma prende solo l'ultimo valore :)
se guardi bene ciò che hai scritto puoi capire il perchè^^
Tu assegni nel while a I ogni valore ma solo alla fine del programma metti I in somma^^
Prova invece a mettere somma nel while (ovviamente non semplicemente "somma = I" ^^)

Quello che devi fare in pratica e ad ogni ciclo aggiungere il numero a somma^^

ps. a cosa serve far inserire quanti numeri vuole immettere l'utente se poi potresti anche ciclare all'infinito? :)
08/06/09 10:08
gigisoft
Postato originariamente da gighen991:

scusate ma ieri sera mi hanno cacciato a letto e mi sono dimenticato di linkare il codice perchè lo stavo sistemando... eccolo cmq..

[...]

il problema è che se metto somma = I mi legge solo l'ultimo valore immesso senza sommarmi tutti i valori immessi....


Salve,
innanzi tutto per il futoro ti consiglio di mettere il codice nei tag Code, risultera' piu' chiaro; poi e' ovvio che in somma andra' solo l'ultimo valore, poche' nel ciclo ogni valore sovrascrive quello precedente.
Anziche' mettere:
somma = I; // col ;

alla fine del ciclo, dovresti mettere:

somma = 0;

while (I != numero){ 
   printf("inserisci il valore"); 
   scanf("%d", &I); 
   somma += I;  // In modo da sommare I ai valori precedenti.
} 
   



aaa
08/06/09 10:31
gighen991
Postato originariamente da gigisoft:

Postato originariamente da gighen991:

scusate ma ieri sera mi hanno cacciato a letto e mi sono dimenticato di linkare il codice perchè lo stavo sistemando... eccolo cmq..

[...]

il problema è che se metto somma = I mi legge solo l'ultimo valore immesso senza sommarmi tutti i valori immessi....


Salve,
innanzi tutto per il futoro ti consiglio di mettere il codice nei tag Code, risultera' piu' chiaro; poi e' ovvio che in somma andra' solo l'ultimo valore, poche' nel ciclo ogni valore sovrascrive quello precedente.
Anziche' mettere:
somma = I; // col ;

alla fine del ciclo, dovresti mettere:

somma = 0;

while (I != numero){ 
   printf("inserisci il valore"); 
   scanf("%d", &I); 
   somma += I;  // In modo da sommare I ai valori precedenti.
} 
   





facendo come dici tu però la somma me la fa ogni volta che immetto un valore...e mi aggiunge alla somma anche il valore sentinella e poi termina il programma... invece io dovrei sommare tutto alla fine... fuori dal ciclo
aaa
08/06/09 10:35
gigisoft
Postato originariamente da gighen991:

[...]

facendo come dici tu però la somma me la fa ogni volta che immetto un valore...e mi aggiunge alla somma anche il valore sentinella e poi termina il programma... invece io dovrei sommare tutto alla fine... fuori dal ciclo


allora devi per forza memorizzare tutto in un array, e dopo fare la somma.

Ciao. :k:

Luigi
aaa
08/06/09 11:12
gighen991
nnt ragazzi!!! ce l'ho fatta... ecco il codice completo!!


#include <iostream>
#include <stdio.h>

int numero,I,sum;

int main()
{
printf("inserisci il numero dei valori immessi: ";);
printf("\nnumero uguale a quello dei valori x terminare: ";);
scanf("%d", &numero);

for(I>1; I!=numero; I++)
{
printf("immetti numero intero o numero per terminare: ";);
scanf("%d",&I);
if (I==numero)break;
sum +=I;
}
printf("la somma e: %d\n", sum);

system("pause";);
return 0;
}

grazie a tutti x l'aiuto!! :D
aaa