Quelle est la réponse à cette question C:
Quelle est la "condition" pour que l'extrait de code suivant imprime à la fois HelloWorld!
if "condition"
printf ("Hello");
else
printf("World");
Quelle est la réponse à cette question C:
Quelle est la "condition" pour que l'extrait de code suivant imprime à la fois HelloWorld!
if "condition"
printf ("Hello");
else
printf("World");
"condition" === (printf("Hello"), 0)
Vraiment boiteux:
int main() {
if (printf("Hello"), 0)
printf ("Hello");
else
printf("World");
}
Je préfère l'utilisation de l'opérateur virgule car vous n'avez pas besoin de rechercher la valeur de retour de printf
pour savoir ce que fait le conditionnel. Cela augmente la lisibilité et la maintenabilité. :-)
Cela me semble être un casse-tête d'entrevue car il est inutile de le faire dans un code de production.
J'espère que c'est proche de ce que vous voulez.
#include <stdio.h>
int main()
{
static int i = 0 ;
if( i++==0 ? main(): 1)
printf("Hello,");
else
printf("World\n");
return 0 ;
}
imprime Hello, World
Bouclez vos ceintures:
#include <stdio.h>
#include <setjmp.h>
int main()
{
jmp_buf env;
if (!setjmp(env))
{
printf("if executed\n");
longjmp(env, 1);
}
else
{
printf("else executed\n");
}
return 0;
}
Tirages:
if executed
else executed
C'est ce que tu veux dire? J'en doute, mais au moins c'est possible. En utilisant fork
vous pouvez également le faire, mais les branches s'exécuteront dans des processus différents.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.