Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - if.. if.. else... ho fatto un pastrocchio xD
Forum - C/C++ - if.. if.. else... ho fatto un pastrocchio xD

Avatar
arazz (Normal User)
Pro


Messaggi: 65
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 21:55
Domenica, 17/05/2009
ciao a tutti ancora una volta, ho provato a fare un programma che dice all'utente quanto costa il biglietto per andare al cinema in base alla sua età e al giorno in cui ci vuole andare..

l'unico modo che ho trovato con le mie conoscenze di fare questo programma è quello di rami ficare un if inun altro if.. in realtà prima ho pensato di ramificare l'if in un if e poi ho trovato il programma xD

questo è il programma che ho scritto, il problema è che il programma cambia il risultato solo in base all'età, come se il valore di giorno fosse sempre 1, quindi ignorando gli else..

Codice sorgente - presumibilmente C#

  1. /* CALCOLA IL PREZZO DEL BIGLIETTO PER IL CINEMA IN BASE ALL'ERA E AL GIORNO */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main()
  6. {
  7.     int anni, giorno; /* anni della persona e giorno in cui si va al cinema */
  8.     float prezzo; /* prezzo del biglietto */
  9.    
  10.     printf ("quanti anni hai?\n"); /* prompt */
  11.     scanf ("%d", &anni); /* legge la variabile degli anni */
  12.    
  13.     printf ("che giorno vuoi andare al cinema? [1 = settimanale; 2 = sabato o domenica]\n"); /* prompt */
  14.     scanf ("%d", &giorno); /* legge la variabile del giorno */
  15.    
  16.     /*
  17.      * caso 1: più di 65 anni, giorno settimanale
  18.      * caso 2: più di 65 anni, giorno festivo
  19.      * caso 3: meno di 65 anni, giorno settimanale
  20.      * caso 4: meno di 65 anni, giorno festivo
  21.     */
  22.    
  23.     if (anni >= 65)
  24.     {
  25.        if (giorno = 1)
  26.        {
  27.        printf ("il biglietto per il cinema costa 3,50 euro\n");
  28.        } else {
  29.          printf ("il biglietto per il cinema costa 5,00 euro\n");
  30.          }
  31.     } else if (giorno = 1)
  32.            {
  33.       printf ("il biglietto per il cinema costa 4,50 euro\n");
  34.              } else  {
  35.         printf ("il biglietto per il cinema costa 7,50 euro\n");
  36.                }
  37.  
  38.    
  39.         system("pause"); /* evita che il programma si chiuda subito */
  40.         return 0; /* indica che il programma è terminato con successo */
  41.        
  42. }




potreste dirmi qual'è l'errore e spiegarmi come andrebbe nidificato?

Ultima modifica effettuata da arazz il 17/05/2009 alle 21:56


You'll never censor me!
You'd better cherish me!
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:09
Domenica, 17/05/2009
Non ho controllato tutte le if ma, per cominciare, una scrittura del tipo

if (giorno = 1)

e' sbagliata. Attenzione perche' in C deve essere

if (giorno == 1)

mentre nell'altro modo e' una assegnazione ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
arazz (Normal User)
Pro


Messaggi: 65
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 22:12
Domenica, 17/05/2009
che stupido che sono, hai ragione!
ora funziona benissimo, grazie mille! =)


You'll never censor me!
You'd better cherish me!
PM Quote