Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110

    problema con il ciclo if

    Ciao a tutti
    stavo provando a scrivere un programma in C ma ad un certo punto mi trovo davanti a questo problema in pratica ad un certo punto ho questa situazione

    if(condizione = 1)
    comandi

    else if(condizione = 2)
    comandi

    else if(comandi = 3)
    comandi

    e in pratica mi fa andare avanti solo se la condizione è uguale a 1
    la condizione dovrebbe essere data da una funzione rand ma il problema non è la funzione perchè ho provato ad assegnare la condizione = 2 e =3 ma in pratica non entra nel ciclo
    qualcuno mi sa spiegare il perchè?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59
    ciao!!!

    Stai usando l'operatore di assegnazione ( = ) invece che l'operatore di uguaglianza ( == )

    codice:
    if(condizione == 1)
    comandi
    
    else if(condizione == 2)
    comandi
    
    else if(comandi == 3)
    comandi

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    no qui era per fare l'esempio sto usando ==
    cmq la cosa strana è che il primo o riesce a leggere tranquillamente mentre 2 e 3 no

    invece più avanti lo stesso codice mi funziona correttamente

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59
    Tu vuoi farci capire cosa stai sbagliando postando qui un codice diverso da quello che hai realmente scritto un po' contorta come cosa.

    A parte tutto posta il codice in questione così possiamo vedere dov'è l'errore.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    ok questo è il codice

    codice:
    if(scelta==1){
          printf("Sei al bar, ti giri e al tavolo, \n");
         
         srand(time(NULL)); //inizializza il generatore   
       esito = rand() % 3; //genera un numero casuale fra 0 e 2
       esito++; //otteniamo un valore fra 1 e 3
      
      temp = esito;
         
           if(temp==1){
            printf("vedi Ken che sta bevendo una birra da solo \n");    
            printf("Che fai? \n");
            printf("1-Lo ignori e ordini qualcosa da bere \n");
            printf("2-Ti vai a sedere vicino a lei \n");
            scanf("%d",&scelta);
            }
            
             else if(temp==2){
            printf("vedi Jack e Ursula che stanno parlando \n");    
            printf("Che fai? \n");
            printf("1-Li ignori e ordini qualcosa da bere \n");
            printf("2-Ti vai a sedere vicino a lei \n");
            scanf("%d",&scelta);
            }
          
           else if(temp == 3){
              printf("vedi una ragazza che non hai mai visto prima \n");  
              printf("Che fai?");
              printf("1-E quella chi è?...bhe sarà di passaggio meglio non perderci tempo ordini qualcosa da bere");
              printf("2-Ti vai a sedere vicino a lei");  
              scanf("%d",&scelta);
              }
              }
    in pratica il random mi dovrebbe far scegliere una delle situazioni, ma in pratica funziona solo la prima altrimenti salta completamente le altre due e l'ho provato anche mettendo temp =2 e temp = 3 ma niente, e come ho detto lo stesso codice in un'altra parte del programma funziona bene, ho controllato le parentesi se avevo fatto qualche errore di battitura ma niente

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    Ecco ho risolto XD
    era una parentesi che non si chiudeva sulla prima scelta ho ricontrollato rigo per rigo ^^

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59
    meglio così allora

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    In futuro, utilizza i tag CODE quando posti del codice, come richiesto dal Regolamento interno.

    Qui l'ho corretto io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.