PDA

Visualizza la versione completa : [C] Istruzione if() e condizione non verificata


Magi13
22-02-2011, 01:59
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è?

premoli
22-02-2011, 08:49
ciao!!!

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



if(condizione == 1)
comandi

else if(condizione == 2)
comandi

else if(comandi == 3)
comandi

Magi13
22-02-2011, 09:27
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

premoli
22-02-2011, 09:29
Tu vuoi farci capire cosa stai sbagliando postando qui un codice diverso da quello che hai realmente scritto :spy: un po' contorta come cosa.

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

Magi13
22-02-2011, 11:14
ok questo è il 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

Magi13
22-02-2011, 11:29
Ecco ho risolto XD
era una parentesi che non si chiudeva sulla prima scelta ho ricontrollato rigo per rigo ^^

premoli
22-02-2011, 11:37
meglio così allora :)

LeleFT
22-02-2011, 12:44
In futuro, utilizza i tag CODE quando posti del codice, come richiesto dal Regolamento interno (http://forum.html.it/forum/showthread.php?s=&threadid=973887).

Qui l'ho corretto io.


Ciao. :ciauz:

Loading