Rozdział 17, funkcje, zadanie domowe
Ostatnio zmodyfikowano 2015-08-09 15:22
pekfos |
» 2015-08-09 15:22:11 Funkcje mają niezdefiniowane zachowanie, jeśli start i stop są sobie równe. Wystarczyłoby samo else w pierwszym, a w drugim trzeba dodatkowo zmienić operator porównania na łapiący dodatkowo równość. Poza tym, po co tu else? Jeśli warunek w if się spełni, funkcja się zakończy. Wszystko po if jest wtedy jakby w jego else. Po co to pisać..? Dodatkowo, stricte kosmetycznie, można najpierw łapać niepoprawne przypadki, a potem tylko zostawić właściwe działanie. Mniej roboty przy przerabianiu na asercje, które byłyby tu właściwszym podejściem. int wylosuj( int start, int stop ) { assert( stop >= start ); return start + rand() %( stop - start + 1 ); } |
|
1 « 2 » |