Meilleure façon de lire plusieurs int en C que scanf


17

J'essaie de lire 4 pouces en C dans un défi de golf et je suis gêné par la longueur du code dont j'ai besoin pour le résoudre:

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

c'est 29 caractères, ce qui est énorme étant donné que la taille totale de mon code est de 101 caractères. Je peux me débarrasser du premier entier car je n'en ai pas vraiment besoin, donc je reçois ce code:

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

ce qui fait 27 caractères, mais c'est encore long.

Donc ma question est, existe-t-il un autre moyen (astuces, fonctions, trucs K&R) pour lire des entiers que je ne connais pas qui pourrait m'aider à réduire ce bout de code?

Merci beaucoup.

EDIT: certains utilisateurs ont signalé que ma question est similaire à Conseils pour le golf en C

Bien que cette rubrique contienne de nombreuses informations utiles pour raccourcir les codes C, elle n'est pas pertinente pour mon cas d'utilisation réel car elle ne fournit pas une meilleure façon de lire les entrées.

Je ne sais pas s'il y a en fait un meilleur moyen que scanf pour lire plusieurs entiers (c'est pourquoi je pose la question en premier lieu), mais si c'est le cas, je pense que ma question est pertinente et suffisamment différente de celle globale trucs et astuces.

S'il n'y a pas de meilleur moyen, ma question peut toujours être utile dans un proche avenir si quelqu'un trouve une meilleure solution.

EDIT2: Je recherche un programme complet (donc pas de truc de fonction) et toutes les librairies possibles. Ce doit être C, pas C ++. Actuellement, tout mon programme ressemble à ceci:

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

toute astuce est la bienvenue, tant qu'elle raccourcit le code (c'est le code golf :)) et tant que ce n'est pas c ++


4
Habituellement, vous pouvez soumettre une fonction au lieu de programmes complets, ce qui vous permet de prendre ces 4 pouces comme arguments.
Denker

Je vois, merci pour votre commentaire, mais dans mon cas, il faut que ce soit un programme complet.
BusyBeingDelicious

12
1) @BusyBeingDelicious, bienvenue chez PPCG! :) 2) Pour les électeurs proches, ce n'est pas une question de programmation générale . Ceci est une question de conseils qui demande de l'aide sur le code de golf qui est absolument sur le sujet .
Martin Ender

1
Mego

3
Chers électeurs, c'est très clairement sur le sujet. Pourquoi essayez-vous toujours de fermer ce dossier?
DJMcMayhem

Réponses:


2

Vous pouvez écrire une fonction au lieu d'un programme comme soumission. En C, vous pouvez omettre intdes signatures de fonction:

f(w,x,y,z){}

9
Le PO a mentionné dans un commentaire que, dans ce cas, il doit s'agir d'un programme complet.
Alex A.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.