Besoin d'aide à résoudre un problème dans mon code
Résolu
Demonaz84
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
NHenry Messages postés 15219 Date d'inscription Statut Modérateur Dernière intervention -
NHenry Messages postés 15219 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
mon professeur m'a demandé de créer un programme qui va nommer la date que l'utilisateur entre au clavier, tout en nommant le mois et en disant si la date est une date valide en considérant les années bissextiles.
mon code semble marcher mais par contre il lui manque un je ne sais quoi pour arrêter de dire que , par exemple, le 29 février 2001 est une date valide, car ce ne l'est pas, en lisant mon code qui n'affiche pas d'erreur dans visual studio, je ne comprend pas pourquoi ça ne marche pas
est-ce que quelqun pourrait sil-vous-plaît me dire qu'elle est la raison que ça ne marche pas parfaitement ? ( SVP utiliser le même type de code que moi, je vois sur google que tout le monde code d'une façon qui est différent à celle que j'apprend au cégep, et ça me rend des plus confus )
merci beaucoup, voici le code de mon programme = ( cette fenetre etant moins large que vidual studio, le retour a la ligne porte a confusion... )
mon professeur m'a demandé de créer un programme qui va nommer la date que l'utilisateur entre au clavier, tout en nommant le mois et en disant si la date est une date valide en considérant les années bissextiles.
mon code semble marcher mais par contre il lui manque un je ne sais quoi pour arrêter de dire que , par exemple, le 29 février 2001 est une date valide, car ce ne l'est pas, en lisant mon code qui n'affiche pas d'erreur dans visual studio, je ne comprend pas pourquoi ça ne marche pas
est-ce que quelqun pourrait sil-vous-plaît me dire qu'elle est la raison que ça ne marche pas parfaitement ? ( SVP utiliser le même type de code que moi, je vois sur google que tout le monde code d'une façon qui est différent à celle que j'apprend au cégep, et ça me rend des plus confus )
merci beaucoup, voici le code de mon programme = ( cette fenetre etant moins large que vidual studio, le retour a la ligne porte a confusion... )
// But : Écrivez un programme qui demande à l’utilisateur d’entrer 3 nombres entiers. Chaque nombre représentera respectivement : une année, un mois et un jour. // Auteur : Eric Desjardins // Date : 8 septembre 2016 #include <iostream> int main() { // On s'assure que la langue est la bonne setlocale(LC_ALL, ""); // On déclare les variables int iAnnée; int iMois; int iJour; bool bAnnée; // On demande à l'utilisateur d'entrer les données std::cout << "Veuillez entrer une année, un mois et un jour (séparés par des espaces) :\n"; // On garde en mémoire les données entrées std::cin >> iAnnée >> iMois >> iJour; // On vérifie si le mois est valide if (iMois > 12) { std::cout << "Le mois entré n'est pas valide\n"; } if (iMois < 1) { std::cout << "Le mois entré n'est pas valide\n"; } else // On nomme le mois dans la date switch (iMois) { case 1: std::cout << iJour << " " << "Janvier" << " " << iAnnée << "\n"; break; case 2: std::cout << iJour << " " << "Février" << " " << iAnnée << "\n"; break; case 3: std::cout << iJour << " " << "Mars" << " " << iAnnée << "\n"; break; case 4: std::cout << iJour << " " << "Avril" << " " << iAnnée << "\n"; break; case 5: std::cout << iJour << " " << "Mai" << " " << iAnnée << "\n"; break; case 6: std::cout << iJour << " " << "Juin" << " " << iAnnée << "\n"; break; case 7: std::cout << iJour << " " << "Juillet" << " " << iAnnée << "\n"; break; case 8: std::cout << iJour << " " << "Août" << " " << iAnnée << "\n"; break; case 9: std::cout << iJour << " " << "Septembre" << " " << iAnnée << "\n"; break; case 10: std::cout << iJour << " " << "Octobre" << " " << iAnnée << "\n"; break; case 11: std::cout << iJour << " " << "Novembre" << " " << iAnnée << "\n"; break; case 12: std::cout << iJour << " " << "Décembre" << " " << iAnnée << "\n"; break; } // On vérifie si le jour est valide if (iMois == 1 && iJour > 31 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 3 && iJour > 31 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 4 && iJour > 30 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 5 && iJour > 31 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 6 && iJour > 30 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 7 && iJour > 31 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 8 && iJour > 31 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 9 && iJour > 30 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 10 && iJour > 31 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 11 && iJour > 30 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 12 && iJour > 31 || iJour < 1) { std::cout << "Le jour n'est pas valide\n"; } bAnnée = true; if (iMois == 2 && (iAnnée % 4 == 0) && (iAnnée % 100 == 0) && (iAnnée % 400 == 0)); else bAnnée = false; if (iMois == 2) if (bAnnée = true) if (iJour > 29 || iJour < 1 ) { std::cout << "Le jour n'est pas valide\n"; } if (iMois == 2) if (bAnnée = false) if (iJour >28 || iJour <1 ) { std::cout << "Le jour n'est pas valide\n"; } // On demande au système de faire une pause afin de lire l'information system("pause"); // On s'assure qu'il n'y a pas d'erreurs return 0; }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Besoin d'aide à résoudre un problème dans mon code
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
j'ai fini par trouver apres des heures de cassage de tete que mon erreur etait que javais juste mit = au lieu de == dans cette section :
bAnnée = true;
if (iMois == 2 && (iAnnée % 4 == 0) && (iAnnée % 100 == 0) && (iAnnée % 400 == 0));
else
bAnnée = false;
donc j'ai mit == aux deux endroits et mon programme marche enfin !
merci beaucoup tout de même c'est fortement apprécié !
à la prochaine gens du forum !
if (iMois == 2 && (iAnnée % 4 == 0) && (iAnnée % 100 == 0) && (iAnnée % 400 == 0));
else
bAnnée = false;
Peut être remplacé par :
bAnnée = iMois == 2 && (iAnnée % 4 == 0) && (iAnnée % 100 == 0) && (iAnnée % 400 == 0);