user
En c pour trouver si une année est bissextile est ce que cette commande est valide : ((annee%4 == 0)&&((!(annee%100 == 0))||(annee%400 == 0)))
alphonsio

Oui, le test ci-dessous est valide pour déterminer si une année est bissextile.

((annee%4 == 0)&&((!(annee%100 == 0))||(annee%400 == 0)))

En le décomposant, on peut vérifier si il suit les règles pour qu'une année soit bissextile :

  1. Une année est bissextile si elle est divisible par 4.
  2. Cependant, les années divisibles par 100 ne sont pas bissextiles, sauf si elles sont aussi divisibles par 400.

Le test :

((annee%4 == 0)&&((!(annee%100 == 0))||(annee%400 == 0)))

peut être expliquée étape par étape :

  • annee % 4 == 0 : Vérifie si l'année est divisible par 4.
  • !(annee % 100 == 0) : Vérifie que l'année n'est pas divisible par 100.
  • (annee % 400 == 0) : Vérifie que l'année est divisible par 400.

Et la combinaison de ces conditions avec les opérateurs logiques :

  • && (ET logique) : Exige que toutes les conditions soient vraies en même temps.
  • || (OU logique) : Exige que l'une des conditions soit vraie.

Donc :

  • Si annee % 4 == 0 est vrai, et que ( !(annee % 100 == 0) || annee % 400 == 0 ) est vrai, l'année est bissextile.

En résumé, le test est correct et il permet bien de déterminer si une année est bissextile.

Notons enfin que ce test peut également s'écrire de la façon suivante :

((annee % 4 == 0 && annee % 100 != 0) || (annee % 400 == 0))