Bonjour tout le monde, alors voila, je commence a apprendre le langage C et du coup j'essaie de faire des exercices.
J'ai recupéré des exercices de l'ecole 42 et tente de les comprendre et aussi de les refaires.
Actuellement il y en a un qui calcule des chiffres qui me pose probleme.
Je comprends bien le code, mais comment fonctionne il ?
Voici l'ennoncé de l'exercice:
Voici le code que j'ai trouvé:Écrire une fonction qui affiche, dans l’ordre croissant, toutes les différentes combinaisons
de trois chiffres différents dans l’ordre croissant - oui, la répétition est
volontaire.
• Cela donne quelque chose comme ça :
012, 013, 014, 015, 016, 017, 018, 019, 023, ..., 789
• 987 n’est pas là car 789 est déjà présent
• 999 n’est pas là car ce nombre ne comporte pas exclusivement des chiffres différents
les uns des autres
Et ce que je comprends:
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
29
30
31
32
33
34
35
36
37
38
39
40
41 #include <unistd.h> void putchar(char c) { write(1, &c, 1); } void count(void) { int a; int b; int c; a = '0'; b = '1'; c = '2'; while (a <= '9') { while (b <= '9') { while (c <= '9') { putchar(a); putchar(b); putchar(c); putchar(' '); c++; } b++; c = b + 1; } a++; b = a; } } int main(void) { count(); return (0); }
Ok on initialise 3 varibles a 0, 1, 2
Mais ensuite comment on fait pour que quand on execute le code, par exemple 021 il ne l'affiche pas !?
Je ne comprends pas la logique qui arrive que le code affiche bien les 3 chiffres mais quand une même combinaison des trois chiffres existe deja, qu'elle ne s'affiche pas !
Par exemple on va avoir 012 mais 021 lui ne va pas s'afficher !!! :O
Partager