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 ++
Jawaban:
Anda dapat menulis fungsi alih-alih program sebagai kiriman Anda. Di C Anda dapat menghilangkan
int
dari tanda tangan fungsi:sumber