Savoir si une année est bissextile en C et C++
Dans cette leçon, vous allez vérifier si une année est bissextile selon la règle du calendrier grégorien.
Introduction
Dans le calendrier grégorien, une année est bissextile si elle est divisible par 4, sauf les années séculaires (divisibles par 100) qui ne sont pas divisibles par 400. C'est pourquoi 2000 était bissextile mais pas 1900. C'est un bon exercice pour combiner plusieurs conditions logiques.
Points importants
- Activez les avertissements du compilateur (compiler warnings) et corrigez-les tous.
- Comprenez bien le type et la durée de vie (lifetime) de chaque valeur.
- Vérifiez toujours les données d'entrée et les limites des indices de tableau.
Exemples de code C et C++
#include <stdio.h>
int main(void) {
int year = 2024;
// Apply the Gregorian calendar rules in one expression.
int leap = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
printf("%d is %sa leap year\n", year, leap ? "" : "not ");
}
2024 is a leap year
#include <iostream>
int main() {
int year = 2024;
// Apply the Gregorian calendar rules in one expression.
bool leap = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
std::cout << year << " is " << (leap ? "" : "not ") << "a leap year\n";
}
2024 is a leap year
Comparaison entre C et C++
L'expression year % 400 == 0 || (year % 4 == 0 && year % 100 != 0) exprime toute la règle en une seule ligne. La première partie traite les années divisibles par 400, la seconde les années divisibles par 4 qui ne sont pas séculaires. L'année 2024 vérifie la seconde partie, elle est donc bissextile.
C utilise de petites fonctions procédurales et montre ouvertement comment les données sont représentées en mémoire.
C++ permet toujours de travailler à bas niveau, mais ajoute des types de bibliothèque et des abstractions plus sûres.
Exercices d'approfondissement
Exécutez les deux versions, puis modifiez le code pour observer la différence de sécurité qu'apporte chaque langage.
- Testez des entrées invalides et des valeurs limites.
- Compilez avec les options -Wall -Wextra -Wpedantic pour activer davantage d'avertissements.
- Placez les déclarations communes dans un fichier d'en-tête et l'implémentation dans un fichier séparé.
S'entraîner avec un défi
Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.
- Année bissextile Vérifiez si une année suit la règle des années bissextiles du calendrier grégorien. Facile