#include <stdio.h>
int fonction1(int a)
{
if (a & 1)
return 1;
else
return 0;
}
int fonction2(int a)
{
if ((a*10) == 10 )
return 1;
else
return 0;
}
void main(void)
{
int nombre;
do
{
printf("Entre un nombre :\n");
fflush(stdin);
scanf("%d",&nombre);
} while( fonction1(nombre) && fonction2(nombre));
}
#include <stdio.h>
int fonction1(int a)
{
if (a & 1)
return 1;
else
return 0;
}
int fonction2(int a)
{
if ((a*10) == 10 )
return 1;
else
return 0;
}
void main(void)
{
int nombre;
do
{
printf("Entre un nombre :\n");
fflush(stdin);
scanf("%d",&nombre);
} while( fonction1(nombre) && fonction2(nombre));
}
Uther
: C'est loin d'être un bug, c'est même imposé par les standards C il me semble.
Enfin tous les compilo C et la grande majorité des autres langagues fonctionnent comme cela.Oui, mais pas le VB par exemple
C'est même pratique dans le cas cité par Nu. Par contre ça permet aussi des horreurs(donc j'adoreOui, mais ce genre de code s'utilise très souvent en PHP. Je ne vois pas trop le problème ?) du style:
mafonction(truc) || printf("Erreur: mafonction retourne 0");
Sasume :Je parlais de langague de programation, pas de VB
Enfin tous les compilo C et la grande majorité des autres langagues fonctionnent comme cela.Oui, mais pas le VB par exemple![]()
Sasume :
C'est même pratique dans le cas cité par Nu. Par contre ça permet aussi des horreurs(donc j'adoreOui, mais ce genre de code s'utilise très souvent en PHP. Je ne vois pas trop le problème ?) du style:
mafonction(truc) || printf("Erreur: mafonction retourne 0");
if (pwet && plop && ouga) tagada(tsointsoin); if (pouet || marmotte || bouga) tagada(tsointsoin);
if (pwet) if (plop) if (ouga) { tagada(tsointsoin); } if (pouet) tagada(tsointsoin); else if (marmotte) tagada(tsointsoin); else if (bouga) tagada(tsointsoin);
sub ParseScript() { while( <IN> ) { $line++; ( /^\s+$/ || /#.+/) || (/\s*SET\s+PROTOCOL\s+([0-9]+)/) && SISTCommand("3",$1) || (/\s*RESET/) && FSISTCommand("4",$1) || (/\s*MEMORY\s+RANGE\s+([0-9]+)/) && SISTCommand("0B",$1) || (/\s*POLL\s+([0-9]+)/) && SISTCommand("16",$1) || (/\s*WRITE\s+WORD\s+([0-9]+)/) && SISTCommand("17",$1) || (/\s*LATCH\s+HIGH\s+DATA\s+([0-9]+)/) && SISTCommand("18",$1) || (/\s*LATCH\s+LOW\s+ADDRESS\s+([0-9]+)/) && SISTCommand("19",$1) || (/\s*LATCH\s+HIGH\s+ADDRESS\s+([0-9]+)/) && SISTCommand("1A",$1) || (/\s*SET\s+BYTE\s+([0-9]+)/) && SISTCommand("1B",$1) || (/\s*READ\s+BYTE\s+([0-9]+)/) && SISTCommand("1C",$1) || (/\s*JUMP\s+AND\s+EXECUTE\s+([0-9]+)/) && SISTCommand("1F",$1) } }
int MaFonction(int *pt_i) { if(pt_i==NULL || *pt_i<0) return -1;// Les valeurs sont invalides (*pt_i)++; return 0; }
Link :
En C, un truc pour lequel on utilise pas mal cette notation, c'estpour contrôler des pointeurs et des valeurs pointées
int MaFonction(int *pt_i) { if(pt_i==NULL || *pt_i<0) return -1;// Les valeurs sont invalides (*pt_i)++; return 0; }
Ici, si pt_i est NULL, le programme ne regardera pas la valeur pointée.
Et j'y repense vu que ta variable est un int tu peux utiliser le fait que le bit de poids fort est en fait un bit de signe...