Próbuję odczytać 4 int w C w golfowym wyzwaniu i przeszkadza mi długość kodu, który muszę rozwiązać:
scanf("%d%d%d%d",&w,&x,&y,&z)
to 29 znaków, co jest ogromne, biorąc pod uwagę, że mój całkowity rozmiar kodu to 101 znaków. Mogę pozbyć się pierwszej int, ponieważ tak naprawdę jej nie potrzebuję, więc otrzymuję ten kod:
scanf("%*d%d%d%d",&x,&y,&z)
który ma 27 znaków, ale wciąż jest długi.
Więc moje pytanie brzmi: czy jest jakiś inny sposób (sztuczki, funkcje, rzeczy K&R), aby odczytać ints, o których nie wiem, może pomóc mi zmniejszyć ten kawałek kodu?
Wielkie dzięki.
EDYCJA: niektórzy użytkownicy zgłosili, że moje pytanie jest podobne do Porad dotyczących gry w golfa w C.
Chociaż ten temat zawiera wiele przydatnych informacji do skrócenia kodów C, nie ma on znaczenia w moim przypadku użycia, ponieważ nie zapewnia lepszego sposobu odczytywania danych wejściowych.
Nie wiem, czy istnieje lepszy sposób niż scanf na odczyt wielu liczb całkowitych (dlatego właśnie zadaję to pytanie), ale jeśli tak, myślę, że moje pytanie jest trafne i wystarczająco inne niż globalne porady i wskazówki.
Jeśli nie ma lepszego sposobu, moje pytanie może być przydatne w najbliższej przyszłości, jeśli ktoś znajdzie lepsze rozwiązanie.
EDIT2: Szukam pełnego programu (więc nie ma sztuczki funkcyjnej) i wszystkich możliwych bibliotek. Musi to być C, a nie C ++. Obecnie cały mój program wygląda następująco:
main(w,x,y,z){scanf("%*d%d%d%d",&x,&y,&z)}
wszelkie triki są mile widziane, o ile skracają kod (to jest kod golfowy :)) i dopóki nie jest to c ++
Odpowiedzi:
Podczas pisania możesz napisać funkcję zamiast programu. W C możesz pominąć
int
podpisy funkcji:źródło