If implique le Else.

Résolu
Bonjour,
pour le code suivant:

int Testmin, Test1, Test2;
	printf("Veuillez donner les valeurs de Testmin, Test1, Test2 : ");
	scanf("%d %d %d", &Testmin, &Test1, &Test2); 


	if ((Test1 >=Testmin) && (Test2 >= Testmin)){
		printf("Vitesse de transmission correcte\n");
	}
	
	else if ((Test1 <= Testmin) || (Test2 <=Testmin)) { 
		printf("Risque de perte durant la transmission\n");
	}
	     else{
		printf("Vitesse de transmission trop lente\n"); 
	}


Il est mentionné que si Test1 est plus petit que TestMin OU que Test2 est plus petit que TestMin, il faut indiquer "Risque de perte durant la transmission" sauf que je ne vois pas comment on pourrait obtenir "Vitesse de transmission trop lente" sauf si les deux Test sont inférieurs à TestMin, ce qui est impossible vu que l'on utilise un "else", est-ce que cet exercice ( pour le dernier "else") est faisable ou est-ce tout simplement erroné?

Merci d'avance!

3 réponses

  1. Modérateur
    Bonjour,

    Dans ton code la deuxième condition est
    (Test1 <= Testmin) || (Test2 <=Testmin)
    mais dans ton diagramme c'est
    (Test1 >= Testmin) || (Test2 >=Testmin)
    !

    Effectivement dans ton code le troisième else ne sert à rien, mais dans le diagramme il existe. En gros les trois conditions servent à compter le nombre de Test1 et Test2 supérieur à TestMin, ce qui peut n'avoir que trois valeurs 2 (=1+1), 1 (=1+0 ou 0+1) et 0 (=0+0) correspondant à tes trois cas.
    1. Oui, j'avais pas vu la faute. Je te remercie pour ton aide qui m'a aussi permis de comprendre cet exercice!

      Bonne journée.
  2. Pas de problème, voici l'énoncé:

    Il est, normalement sous forme de diagramme d'action mais je ne peux pas le reproduire par clavier.

    1. Bonjour, vu ton énoncé il suffirait d'inverser et d'abord voir si test1 ou test2 sont inférieurs, et après dans un else indiquer les bonnes valeurs

      Edit : non, ce n'est pas correct, peux-tu dire exactement l'énoncé tel que demandé?