infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: speedzeal din Iulie 12, 2009, 23:07:05



Titlul: ciudat
Scris de: speedzeal din Iulie 12, 2009, 23:07:05
Salut, nu inteleg de ce niste acolade schimba asa mult rezultatul programului. Daca pun acoladele din codul de mai jos (cele ingrosate)  atunci imi ruleaza bine pe toate testele, altfel imi ruleaza la infinit cu exceptia a catorva teste...de ce? :-s
eu stiu ca nu e nevoie de acolade numai daca se afla 2 sau mai multe instructiuni in cadrul unui bloc.In cazul meu in fiecare bloc avem un alt bloc in zona la care ma refer  :wink:...   
Cod:
int cautbin()
               {int ca=1,cb=nrint;
                while(ca<=cb)        {j=(ca+cb)/2;
                                                if(interval[j].b>=za[i].zi && interval[j-1].b<za[i].zi)
                                                        [b]{[/b]for(;j<=nrint;j++)     
                                                                  if(za[i].zi>=interval[j].a)   
                                                                              return j;[b]}[/b]
                                                else      {if(interval[j].b<za[i].zi)      ca=j+1;
                                                               else                             cb=j-1;
                                                             }
                                              }
                return 0;   
               }


Titlul: Răspuns: ciudat
Scris de: Stefan Istrate din Iulie 12, 2009, 23:10:31
Vezi ca sunt cuplate diferit if-urile cu else-uri. Un else se potriveste intotdeauna cu ultimul if si iti da peste cap treburile. :)


Titlul: Răspuns: ciudat
Scris de: speedzeal din Iulie 12, 2009, 23:16:26
Vezi ca sunt cuplate diferit if-urile cu else-uri. Un else se potriveste intotdeauna cu ultimul if si iti da peste cap treburile. :)
Am inteles , eu credeam ca ultimul else se cupla cu penultimul if(din tot codul postat) doar in cazul in care acestea doua era intre doua acolade comune... :oops:....Multumesc.