Ostatnia zagadka została poprawnie rozwiązana przez dwie osoby. Pierwsze działające rozwiązanie nadesłał Adam (podpisujący się w komentarzach jako Rekin). Później, krótsze rozwiązanie zaproponował Railis. Gratulacje.
Dzisiaj zagadka bardziej ze znajomości C, niż C++. Kompilator C++ jednak też powinien akceptować rozwiązanie. Zagadka jest stara jak świat a jej treść brzmi następująco:
Dzisiaj zagadka bardziej ze znajomości C, niż C++. Kompilator C++ jednak też powinien akceptować rozwiązanie. Zagadka jest stara jak świat a jej treść brzmi następująco:
Spraw, aby poniższy kod został skompilowany przez kompilatory C/C++:
- begin
- writeln("Hello world");
- end;
I wyprodukował napis: Hello World, po czym zakończył swoją pracę. Oczywiście bez modyfikacji tychże linijek.
Tradycyjnie już: miłej zabawy.
PS: Wiem, że "pascalowość" tegoż kodu jest troszeczkę naciągana. ;)
#include
OdpowiedzUsuń#define writeln printf
#define begin
#define end printf("\n")
int main()
{
begin
writeln("Hello World!");
end;
}
Nie tak. :)
OdpowiedzUsuńChodziło dokładnie o ten kod:
begin
writeln("Hello world");
end;
Nie dopisujesz nic za. Tylko przed.
Ale mój błąd, nie sprecyzowałem.
OdpowiedzUsuńNo to to jest w sumie to samo tyle, że trzeba define troche zmienic :)
OdpowiedzUsuń#include
#define writeln printf
#define begin main(){
#define end; printf("\n");}
begin
writeln("Hello World!");
end;
Gra i bucy...
Wkurzają mnie ten zabezpieczenia przed xss'em... nie pokazuje mi niczego po znaku '<'.
OdpowiedzUsuń@Rekin: a mnie nie wkurzają, za to wkurza mnie brak <pre>. Co do zagadki: gdyby można było dopisywać przed i po to można by pascalowy kod dać w komentarz. :P Moje rozwiązanie:
OdpowiedzUsuń#include <stdio.h>
#define begin {
#define end }
void writeln(const char s[])
{
printf("%s\n", s);
}
int main()
begin
writeln("Hello world");
end;
Właśnie... pre też brakuje. W sumie to można dodawać kody programu na wklej.org i wklejać linki. W każdym razie czekamy na następne zagadki :-)
OdpowiedzUsuńTylko jakieś konkretniejsze :D. Z tym Pascalem... tracisz formę Mateusz!
OdpowiedzUsuń