Incompréhension de l'erreur d'un QCM

Résolu/Fermé
tux - Modifié par Whismeril le 22/04/2015 à 23:30
Thomato87 Messages postés 107 Date d'inscription samedi 1 janvier 2011 Statut Membre Dernière intervention 8 juin 2015 - 23 avril 2015 à 10:13
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

Thomato87 Messages postés 107 Date d'inscription samedi 1 janvier 2011 Statut Membre Dernière intervention 8 juin 2015 16
23 avril 2015 à 00:00
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
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
je viens de comprendre 5%5 donne évidement 0
0
Thomato87 Messages postés 107 Date d'inscription samedi 1 janvier 2011 Statut Membre Dernière intervention 8 juin 2015 16
23 avril 2015 à 10:13
Exact !
0