Cara yang lebih baik untuk membaca banyak int di C daripada scanf

17

Saya mencoba membaca 4 ints dalam C dalam tantangan golf dan saya terganggu dengan panjang kode yang saya butuhkan untuk menyelesaikannya:

scanf("%d%d%d%d",&w,&x,&y,&z)

itu 29 karakter, yang sangat besar mengingat ukuran kode total saya adalah 101 karakter. Saya dapat menghilangkan int pertama karena saya tidak benar-benar membutuhkannya, jadi saya mendapatkan kode ini:

scanf("%*d%d%d%d",&x,&y,&z)

yaitu 27 karakter, tapi masih panjang.

Jadi pertanyaan saya adalah, apakah ada cara lain (trik, fungsi, hal-hal K&R) untuk membaca int yang saya tidak tahu yang dapat membantu saya mengurangi sedikit kode ini?

Terima kasih banyak.

EDIT: beberapa pengguna telah melaporkan bahwa pertanyaan saya mirip dengan Tips untuk bermain golf di C

Meskipun topik ini mengandung banyak informasi berguna untuk mempersingkat kode C, itu tidak relevan dengan kasus penggunaan saya yang sebenarnya karena tidak memberikan cara yang lebih baik untuk membaca input.

Saya tidak tahu apakah sebenarnya ada cara yang lebih baik daripada scanf untuk membaca banyak bilangan bulat (itu sebabnya saya mengajukan pertanyaan di tempat pertama), tetapi jika ada, saya pikir pertanyaan saya relevan dan cukup berbeda dari global tips dan trik.

Jika tidak ada cara yang lebih baik, pertanyaan saya masih bisa berguna dalam waktu dekat jika seseorang menemukan solusi yang lebih baik.

EDIT2: Saya mencari program lengkap (jadi tidak ada trik fungsi) dan semua librairies mungkin. Itu harus C, bukan C ++. Saat ini, seluruh program saya terlihat seperti ini:

main(w,x,y,z){scanf("%*d%d%d%d",&x,&y,&z)}

ada trik yang diterima, selama itu mempersingkat kode (ini adalah kode golf :)) dan selama itu bukan c ++

BusyBeingDelicious
sumber
4
Biasanya Anda dapat mengirimkan fungsi alih-alih program lengkap yang memungkinkan Anda untuk mengambil 4 int sebagai argumen.
Denker
Saya mengerti, terima kasih atas komentar Anda, tetapi dalam kasus saya, ini harus berupa program lengkap.
BusyBeingDelicious
12
1) @BusyBeingDelicious, selamat datang di PPCG! :) 2) Untuk pemilih dekat, ini bukan pertanyaan pemrograman umum . Ini adalah pertanyaan tips yang meminta bantuan kode golf yang benar-benar pada topik .
Martin Ender
1
Kemungkinan duplikat Tips untuk bermain golf di C
Mego
3
Para pemilih dekat yang terhormat: Ini sangat jelas tentang topik. Mengapa Anda masih mencoba untuk menutup ini?
DJMcMayhem

Jawaban:

2

Anda dapat menulis fungsi alih-alih program sebagai kiriman Anda. Di C Anda dapat menghilangkan intdari tanda tangan fungsi:

f(w,x,y,z){}
orlp
sumber
9
OP disebutkan dalam komentar bahwa dalam hal ini perlu program penuh.
Alex A.