gighen991 (Normal User)
Newbie
Messaggi: 20
Iscritto: 27/04/2009
|
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!!
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
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 ...
|
|
gighen991 (Normal User)
Newbie
Messaggi: 20
Iscritto: 27/04/2009
|
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....
|
|
()
Newbie
Messaggi:
Iscritto:
|
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?
|
|
gigisoft (Member)
Guru
Messaggi: 696
Iscritto: 11/10/2008
|
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:
Codice sorgente - presumibilmente Plain Text |
alla fine del ciclo, dovresti mettere:
Codice sorgente - presumibilmente C/C++ |
somma = 0;
while (I != numero){
printf("inserisci il valore");
scanf("%d", &I);
somma += I; // In modo da sommare I ai valori precedenti.
}
|
|
|
gighen991 (Normal User)
Newbie
Messaggi: 20
Iscritto: 27/04/2009
|
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:
Codice sorgente - presumibilmente Plain Text |
alla fine del ciclo, dovresti mettere:
Codice sorgente - presumibilmente C/C++ |
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 |
|
gigisoft (Member)
Guru
Messaggi: 696
Iscritto: 11/10/2008
|
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.
Luigi |
|
gighen991 (Normal User)
Newbie
Messaggi: 20
Iscritto: 27/04/2009
|
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!!
|
|
()
Newbie
Messaggi:
Iscritto:
|
ti prego non farlo!
togli quel break :P
non sta bene usare i break
ps. nel tuo esempio la somma la fai comunque nel ciclo^^
ps2. inoltre non serve per come hai impostato il for^^
ps3. il primo valore che inserisci nel for dovrebbe avere un = non un > o < ^^
ricorda che se una cosa funziona non vuol dire che vada bene
non prenderla male ma come un consiglio, esistono miliardi di modi per fare la stessa cosa^^
dovresti cercare di usare sempre il migliore, senza fermarti al "funziona!"
Ultima modifica effettuata da il 08/06/2009 alle 15:31 |
|