Vai al contenuto

[C] Qualcuno cosi disponibile da dirmi perchè ho sbagliato?


elias90

Messaggi raccomandati

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?

schermata20100221a13193.png

Link al commento
Condividi su altri siti

uhm, vedo qualche problema da principianti :cry:

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 :ghghgh:

Prova ad analizzarlo per capire come funziona :(

MacBook Pro 15" - 2,53 GHz Core 2 Duo

Link al commento
Condividi su altri siti

uhm, vedo qualche problema da principianti :bubble:

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 :cry:

Prova ad analizzarlo per capire come funziona :ghghgh:

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

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

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...