elias90 Inviato 21 Febbraio 2010 Segnala Condividi Inviato 21 Febbraio 2010 Qualcuno sa dirmi perchè ho sbagliato? io volevo che, se si capisce, una volta terminato il ciclo while, dove devo inserire i numeri e rispondere alla domanda. Se rispondo si il ciclo incomincia se rispondo no, mi da il totale e finisce. Qualcuno mi sa dare una mano? Link al commento Condividi su altri siti Altre opzioni di condivisione...
» CrAzY Inviato 21 Febbraio 2010 Segnala Condividi Inviato 21 Febbraio 2010 uhm, vedo qualche problema da principianti Andiamo in ordine... 1) il ciclo while parte da cnt=0 e lo ripete finché non è uguale a num1, ma num1 non è stata definita, quindi il "quanti numeri vuoi inserire" va messo fuori dal ciclo (prima). 2) if(risp == 'si') ecc... questo blocco è concepito male e c'è un ';' dopo il while che non ci va. Senza contare che la variabile cnt va azzerata perché al momento possiede già il valore di num1 precedente. 3) nella definizione delle variabili hai definito due variabili inutilizzate che sono 'si' e 'no'. 4) l'ultimo blocco non ha senso. Diciamo che hai molto da capire.... provo ad abbozzarti una soluzione per questo: #include <stdio.h> using namespace std; int main(){ int cnt=0, num1, numero, totale; char risp='s'; while(risp=='S' || risp=='s'){ printf("quanti numeri vuoi inserire ?: "); scanf("%d",&num1); while(cnt <= num1){ printf("Digita qui il %d numero: ", cnt); scanf("%d",&numero); totale += numero; cnt++; } printf("Vuoi continuare ? (S/N): "); scanf("%c",&risp); } printf("il ciclo e' finito."); printf("la somma dei numeri e': %d", totale); return 0; } Considera che io sono solito programmare in ambiente Windows quindi non escludo che possa esserci qualche errorino, ma a livello logico è corretto Prova ad analizzarlo per capire come funziona MacBook Pro 15" - 2,53 GHz Core 2 Duo Link al commento Condividi su altri siti Altre opzioni di condivisione...
elias90 Inviato 21 Febbraio 2010 Autore Segnala Condividi Inviato 21 Febbraio 2010 uhm, vedo qualche problema da principianti Andiamo in ordine... 1) il ciclo while parte da cnt=0 e lo ripete finché non è uguale a num1, ma num1 non è stata definita, quindi il "quanti numeri vuoi inserire" va messo fuori dal ciclo (prima). 2) if(risp == 'si') ecc... questo blocco è concepito male e c'è un ';' dopo il while che non ci va. Senza contare che la variabile cnt va azzerata perché al momento possiede già il valore di num1 precedente. 3) nella definizione delle variabili hai definito due variabili inutilizzate che sono 'si' e 'no'. 4) l'ultimo blocco non ha senso. Diciamo che hai molto da capire.... provo ad abbozzarti una soluzione per questo: #include <stdio.h> using namespace std; int main(){ int cnt=0, num1, numero, totale; char risp='s'; while(risp=='S' || risp=='s'){ printf("quanti numeri vuoi inserire ?: "); scanf("%d",&num1); while(cnt <= num1){ printf("Digita qui il %d numero: ", cnt); scanf("%d",&numero); totale += numero; cnt++; } printf("Vuoi continuare ? (S/N): "); scanf("%c",&risp); } printf("il ciclo e' finito."); printf("la somma dei numeri e': %d", totale); return 0; } Considera che io sono solito programmare in ambiente Windows quindi non escludo che possa esserci qualche errorino, ma a livello logico è corretto Prova ad analizzarlo per capire come funziona ahah, guarda ho incominciato proprio ieri!!! eheh Cmq ho provato a eseguire il tuo esempio, non da errori ma il programma non fa quello che intendo io, una volta che ho inseirito il numero, poi a seguire i numeri che volevo seguire il programma finisce direttamente non mi da possibilità di scegliere se continuare o meno, ossia: quanti numeri vuoi inserire ?: Running… 3 Digita qui il 0 numero: 3 Digita qui il 1 numero: 3 Digita qui il 2 numero: 3 Digita qui il 3 numero: 3 Vuoi continuare ? (S/N): il ciclo e' finito.la somma dei numeri e': 12 Debugger stopped. Program exited with status value:0. vedi quanto inserisco per la 4 volta il 3 finisce direttamente. capito cosa intendo. Voglio farti una domanda, io poi ho corretto il mio a seguire, prima di leggere la tua risp, mi risultavano solo due errori che ora ti dico: sulle stringe del risp si o risp no mi diceva solo: multicharacter charater constant. si capisce quello che ho scirtto'???eheheh Link al commento Condividi su altri siti Altre opzioni di condivisione...
elias90 Inviato 21 Febbraio 2010 Autore Segnala Condividi Inviato 21 Febbraio 2010 ho risolto il codice era cosi. #include <stdio.h> int main () { int cnt=0,num1, numero, totale=0; char risp, no, si; while (cnt <= num1) { printf("Quanti numeri vuoi inserire?"); scanf("%d", &num1); printf("Digita qui il %d numero", cnt); scanf("%d", &numero); cnt++; } printf("vuoi continuare? si/no"); scanf("%char", &risp); if (risp == si) { while (cnt <= num1); { printf("Quanti numeri vuoi inserire?"); scanf("%d", &num1); printf("Digita qui il %d numero", cnt); scanf("%d", &numero); cnt++; } } if (risp == no) { printf("Il ciclo è finito"); totale= totale+numero; printf("La somma dei numeri è: %d", totale); } return 0; } Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.