|
|
|
![]() |
|
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: 16211
|
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 15:49. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:23.