TCH (statz) | #1, Főfasz (10443) |
3543 | #274f | ^ | Idézet | Sun, 25 Aug 2013 01:02:33 +02 |
84.3.*.* | *.catv.pool.telekom.hu |
Nem volt elég reprezentatív a mintád, nem fedett le minden lehetőséget. Ezért kell szisztematikusan az összes lehetőséget végignyálazni. De - mivel emberek vagyunk - ha pár lehetőséget nem teszteltünk, akkor ott jöhetnek elő a bugok.
Isten hozott a XXI. században, a III. évezred hajnalán, a jövőben! Elhiszem, de szerintem ne is bánd, az a cég amelyik papíron kéri a próbafeladatot, az teljesen komolytalan, akkor is, ha nagy cég. Hát amennyiben heurisztikus optimalizációval tolja - amit kétlek - és kiszúrja, hogy nem nyúlsz a tömbhöz a ciklusban, akkor lehet, de akkor meg a fordítási idő lesz sokkal több. Normál esetben nem optimalizálhatja ki. Ugyanis az, hogy for(int i = 0; i < strlen(s); ++i) { strcat(s, "0"); }végtelen ciklust kell, hogy eredményezzen, ugyanis a ciklus folytatásának feltétele minden körben ellenőrzésre kerül és ha abban az van, hogy addig menjen amíg nem lesz egyenlő az index a hosszal, akkor addig fog menni és ha te közben pakolod a karaktereket a szövegbe, akkor sose fog végetérni. Oké, véget ér amikor nem tud több memóriát allokálni. :P Ok, ezt nem írtad. De ami kódot adtam, az megfelelt ennek a követelménynek is. Ezt se írtad, de az én függvényem ennek is megfelelt. :) Oké, de én írtam, hogy akkor sem perelhetsz, ha eredeti a winfosod. Illetve perelhetsz, csak szart se érsz vele, mert a szerződésben benne van, hogy akármit tehetnek a gépeddel. Elég szomorú, hogy ennyien elmentek már a Babylon 5-ből. Némelyikük még az ötvenet sem töltötte be. :( RIP. (Thx a videót.) Én nem akarok beszólni de ez sem jó. :) A következő tömbre [0, INT_MIN] ez NULL-t fog visszaadni, mert a lastmax változására nem lehet alapozni, ha egyszer tényleg a minimum a második legnagyobb elem. Én ezt is óvatosan kezelném a helyedben, mert ez nem Pascal, ahol boolean és integer közti művelettől hanyattvágja magár a compiler, hanem C, ahol simán végrehajtja, márpedig az and, or, xor, not az mind kétértelmű, mert vonatkozhatnak int-re és bool-ra egyaránt. Hogy érthetőbb legyek, ezek a bool-algebrás műveletek: && || ^^ !, ezek pedig az integerre vonatkozóak: & | ^ ~, ezek az operátorok implicit módon hordozzák a művelet típusát, míg az and, or, xor, not nem, ami mint mondtam Pascalban oké, mert mismatch errorlesz ha kevered, de C-ben végrehajtja. Egy példa: #include <stdio.h> #include <stdbool.h> void main() { int x = 0xaaaaaaaa; bool y = true; if ((x & y) == (x && y)) { printf("YESSS!!!\n"); } else { printf("NOOO!!!\n"); } } root@Csabi:~# gcc szarkupac.c root@Csabi:~# a.out NOOO!!! root@Csabi:~#Látod? Baromira nem mindegy, hogy melyik. Most akkor itt az x and y mit jelentene? x && y vagy x & y? Szóval csak óvatosan ezzel. |