int B[20][20];
int L,C;
int main()
do
{
printf ("veuillez entrer la valeur de la ligne\n");
scanf ("%d",&L);
printf ("veuillez entrer la valeur de la colonne\n");
scanf ("%d",&C);
}while ((L<=0 && L>20) && (C<=0 && C>20) && (L!=C));
Boujour,je suis josué kouamé, je ne sais pas pourquoi la condition ne s'applique pas merci . (code block 20.03)
La condition fait exactement ce qui est écrit. Le probleme c'est que ce qui est écrit ne correspond pas à ce qu'on souhaiterait. Qu'il ne faut pas avoir peur de décrire explicitement si veut comprendre où est la différence.
Quoi qu'il en soit : une condition comme x<1 && x>20 est toujours fausse. Un nombre ne peut pas àlafois être plus petit que 1 et plus grand que 20.
Si (supposons) on cherche à vérifier qu'il est plus petit que 1 oubien plus grand que 20, c'est un ou entre les deux inégalités, opérateur || à la place de &&.
Ps ne pas hésiter à écrire les conditions composées sur plusieurs lignes pour faciliter la relecture
while ( x < a || x > b
|| y < c || y > d );
- Edité par michelbillaud 4 février 2024 à 10:09:51
Les macros pour faire semblant de programmer en Pascal
#define REPEAT do {
#define UNTIL(cond) } while( !(cond) )
Ps: à part ça, le découpage en fonctions est votre ami pour maîtriser la complication
do {
printf ("veuillez entrer la valeur de la ligne\n");
scanf ("%d",&L);
printf ("veuillez entrer la valeur de la colonne\n");
scanf ("%d",&C);
}while ( ! coordonnees_valides(L, C));
avec
bool coordonnees_valides(int L, int C)
{
if (L <= 0 || L > 20) return false;
if (C <= 0 || C > 20) return false;
if (L == C) return false; // sûr ?
return true;
}
Avec la programmation dans le style "examinons successivement les raisons qui permettraient de conclure de suite". Très courant en programmation de gestion (*), où il faut parfois vérifier des dizaines de conditions sur le contenu d'un formulaire par exemple. C'est beaucoup plus facile à relire et maintenir que des conditions imbriquées
(*) une pensée émue pour le EVALUATE FALSE en Cobol !
- Edité par michelbillaud 8 février 2024 à 15:34:23
problème avec la boucle do while
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Le Tout est souvent plus grand que la somme de ses parties.