Bonjour à tous,

Je dois dire ce qu’affiche le code suivant sans explication (c’est un QCM) et je voulais savoir comment je devrais m’y prendre pour ne pas m’y perdre ?
Je pourrais tout simplement le compiler et voir le résultat mais ce n’est pas l’objectif :-).

Mon raisonnement:
Calculer nested_while(a = 2; b = 2; c = 3)
—> m = 7 (on “écrase” la variable globale, on prend la locale)
0<7 OK ; 0 < 2 OK -> j = 1 -> Print: 1 0
-> R = 1.
Etc.
J’arrive à quelque chose du genre 1 0 2 1 pour result.
m pour moi vaut 2 quand on le print dans le main mais c’est faux car la réponse n’est même pas proposée.

On propose:
A / 102022
B/ 102020
C/ 10203023
D/ 102062



Code dont je fais référence:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
#include <stdio.h>
   int m = 2;
 
   int nested_while(int a, int b, int c){
   int i, j, m, r;
   m = a + b + c;
   i = 0;
   j = 0;
   r = 0;
   while (i < m) {
     while (j < b) {
       j++;
       printf("%d %d ", j, i);
       r = i + j;
}
i++; }
return r; }
 int main() {
   int c, i, j;
int result;
   c = 3;
   i = 1;
   j = ++i;
   result = nested_while(i, j, c);
   printf("%d %d", m, result);
return 0; 
}
Réponse du corrigé (si jamais): A.

Si vous avez des astuces ou quoi que ce soi pour m’aider, ça serait super!