|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 74
|
[C] Problema con switch e getchar()
Ho scritto questo programmino per provare le cose di base (ho iniziato il C da... ieri
):Codice:
#include <stdio.h>
int n1,n2,risultato,scelta;
main()
{
printf("\nCosa vuoi fare?\n");
printf("1)moltiplicazione 2)addizione\n");
printf("3)divisione 4)sottrazione\n");
scanf("%d",&scelta);
switch(scelta)
{
case 1:
printf("Inserisci il primo numero: ");
scanf("%d",&n1);
printf("Inserisci il secondo numero: ");
scanf("%d",&n2);
risultato=n1*n2;
printf("\nIl risultato di %d*%d e': %d\n",n1,n2,risultato);
break;
case 2:
printf("Inserisci il primo numero: ");
scanf("%d",&n1);
printf("Inserisci il secondo numero: ");
scanf("%d",&n2);
risultato=n1+n2;
printf("\nIl risultato di %d+%d e': %d\n",n1,n2,risultato);
break;
default:
printf("Non disponibile");
}
getchar();
return 0;
}
Anche con getchar non funziona. Come devo fare? Grazie ciao
__________________
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
mettine due.. oppure una scanf di una tua variabile giusto per tenere aperta la schermata..
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 74
|
Ok, grazie mille ora funziona.
Mi è spuntato un altro problema andando a fare la divisione: Codice:
case 3:
printf("Inserisci il primo numero: ");
scanf("%f",&n1f);
printf("Inserisci il secondo numero: ");
scanf("%f",&n2f);
risultatof=n1/n2;
printf("\nLa divisione tra %f e %f e': %f",n1f,n1f,risultatof);
break;
Perchè?
__________________
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
non vedo la dichiarazione di quella variabile ma premuso tu l'abbia fatta.. è un double?
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
|
|
|
|
|
|
#6 | ||
|
Member
Iscritto dal: Jul 2006
Messaggi: 74
|
Quote:
Codice:
#include <stdio.h>
int n1,n2,risultato,scelta;
float n1f,n2f,risultatof;
main()
{
printf("\nCosa vuoi fare?\n");
printf("1)moltiplicazione 2)addizione\n");
printf("3)divisione 4)sottrazione\n");
scanf("%d",&scelta);
switch(scelta)
{
case 1:
printf("Inserisci il primo numero: ");
scanf("%d",&n1);
printf("Inserisci il secondo numero: ");
scanf("%d",&n2);
risultato=n1*n2;
printf("\nLa moltiplicazione tra %d e %d e': %d\n",n1,n2,risultato);
break;
case 2:
printf("Inserisci il primo numero: ");
scanf("%d",&n1);
printf("Inserisci il secondo numero: ");
scanf("%d",&n2);
risultato=n1+n2;
printf("\nLa somma tra %d e %d e': %d\n",n1,n2,risultato);
case 3:
printf("Inserisci il primo numero: ");
scanf("%2.2f",&n1f);
printf("Inserisci il secondo numero: ");
scanf("%2.2f",&n2f);
risultatof=n1/n2;
printf("\nLa divisione tra %2.2f e %2.2f e': %2.2f",n1f,n1f,risultatof);
break;
default:
printf("Non disponibile");
}
getchar();
getchar();
return 0;
}
Quote:
__________________
|
||
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
ma funziona o no? in ogni caso ricordati di controllare il secondo numero nella divisione che non può essere zero altrimenti ti crasha in runtime..
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 74
|
Si, continua a crasharmi. Scrivo 9, do invio e crasha subito.
__________________
|
|
|
|
|
|
#9 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16212
|
Quote:
Ora provo io... EDIT: boh... io, con un codice simile, nessun problema...
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu Ultima modifica di Ziosilvio : 01-10-2007 alle 16:49. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:52.










):









