Incompréhension de l'erreur d'un QCM

Résolu
tux -  
Thomato87 Messages postés 117 Statut Membre -
Bonjour,

J'apprend le C++ via Coursera et après la correction d'un QCM je ne comprend pas mon erreur.
Voici le code:

int a(5);
int b(7);
int c(5);

if (a + b > c){
    cout << "1" << " ";
    b += 5;
}
else{
    cout << "2" << " ";
}

if (b % 2 == 0){
    if (a % c == 0){
        cout << "3" << " ";
    }
    else{
        cout << "4" << " ";
    }
}
else{
    cout << "5" << " ";
}


La question est d'afficher la sortie de cout, je répond 1 4 mais c'est visiblement faux et je ne saisis pas pourquoi. Les réponses sont :
1 4

2 4

2 5

1 3

Auriez vous une explications ?
Merci

EDIT: Ajout de la coloration syntaxique.

1 réponse

  1. Thomato87 Messages postés 117 Statut Membre 16
     
    Je ne connais pas le C++ (seulement le C) et donc je ne connais pas la syntaxe cout << "1" << " "; mais par contre pour le reste es tu sûr d'avoir compris ce que fait par exemple b += 5; ainsi que l'opérateur "%" ?
    0
    1. tux
       
      b+=5 correspond à b= b+5 et % est le modulo
      Donc b+=5 donne b=12 et b % 2 ==0 c'est juste donc nous devrions nous brancher sur le second if (a % c == 0) qui est faux puisque le modulo est de 1.

      cout correspond au printf
      0
    2. tux
       
      je viens de comprendre 5%5 donne évidement 0
      0
    3. Thomato87 Messages postés 117 Statut Membre 16
       
      Exact !
      0