J’ai créé la fonction ft_putchar(char c) pour afficher un caractère en utilisant la fonction write.
Pour utiliser la fonction write, j’ai dû inclure l’en-tête #include <unistd.h>, qui signifie Unix standard.
Dans l’appel à write, le premier argument 1 correspond à la sortie standard (stdout).
Pour le deuxième argument, j’ai mis &c (et non pas simplement c) car la fonction write attend l’adresse en mémoire de la donnée à écrire. Ici, &c signifie « l’adresse du caractère c ».
Enfin, pour afficher un seul caractère, j’ai mis 1 comme troisième argument de write, ce qui signifie 1 octet.
J’ai créé la fonction void ft_print_alphabet(void)
pour afficher l’alphabet en minuscules dans l’ordre croissant, à partir de la lettre 'a'.
J’ai utilisé une boucle for avec char a = 'a', qui commence à 'a' et s’incrémente jusqu’à 'z', en augmentant de 1 à chaque itération.
J’ai utilisé la fonction write pour afficher toutes les lettres de l’alphabet.
J’ai créé la fonction void ft_print_reverse_alphabet(void)
pour afficher l’alphabet en minuscules dans l’ordre décroissant, à partir de la lettre 'z'.
J’ai utilisé une boucle for avec char a = 'z', qui commence à 'z' et décrémente jusqu’à 'a', en diminuant de 1 à chaque itération.
J’ai utilisé la fonction write pour afficher toutes les lettres de l’alphabet dans l’ordre inverse.
J’ai créé la fonction ft_print_numbers
pour afficher les chiffres de 0 à 9 sur une seule ligne dans l’ordre croissant.
Pour cela, j’ai utilisé une boucle for avec char a, qui commence à '0' et s’incrémente jusqu’à '9'.
Ainsi, tous les chiffres apparaissent sur une seule ligne dans l’ordre croissant.
J’ai utilisé la fonction ft_is_negative, qui affiche N si l’entier passé en paramètre est négatif, et P si l’entier est positif ou égal à 0.
Pour cela, j’ai utilisé une structure conditionnelle if pour gérer les deux cas.
Dans le premier cas, si le nombre est inférieur à 0, j’affiche N avec la fonction write.
Dans le deuxième cas, si le nombre est positif ou égal à 0, j’affiche P également avec write.
Ainsi, la fonction affiche correctement N ou P selon la valeur de l’entier.
J’ai créé la fonction ft_print_comb, de type void, qui affiche toutes les combinaisons possibles de trois chiffres différents dans l’ordre croissant.
Pour cela, j’ai utilisé trois boucles for imbriquées avec les variables i, j et m :
- i représente le premier chiffre et va de '0' à '7'.
- j représente le deuxième chiffre et commence à i + 1, jusqu’à '8'.
- m représente le troisième chiffre et commence à j + 1, jusqu’à '9'.
Dans chaque itération, j’affiche les chiffres i, j et m avec la fonction write.
Pour séparer les combinaisons par une virgule et un espace, j’utilise une condition : si i != '7', j != '8' et m != '9', alors j’écris , avec write(1, ", ", 2) (2 octets).
Ainsi, la dernière combinaison (7 8 9) n’est pas suivie d’une virgule ni d’un espace.
J’ai créé la fonction ft_print_comb2, de type void, qui affiche toutes les combinaisons possibles de deux nombres à deux chiffres différents dans l’ordre croissant.
Pour cela, j’ai utilisé deux boucles for imbriquées :
- i va de 0 à 98 et représente le premier nombre.
- j va de i + 1 à 99 et représente le deuxième nombre.
Pour chaque combinaison, j’ai séparé les chiffres de chaque nombre :
- x = chiffre des dizaines de i → (i / 10) + '0'
- y = chiffre des unités de i → (i % 10) + '0'
- z = chiffre des dizaines de j → (j / 10) + '0'
- t = chiffre des unités de j → (j % 10) + '0'
Remarque importante : on ajoute '0' à chaque chiffre pour le convertir en caractère ASCII (아스키), car la fonction write attend des caractères et non des nombres. Sans + '0', write afficherait le code ASCII correspondant au nombre entier, ce qui ne donnerait pas le chiffre souhaité.
Ensuite, j’affiche les chiffres x, y, un espace, puis z et t avec la fonction write.
Pour séparer les combinaisons par une virgule et un espace, j’utilise la condition :
if (!(i == 98 && j == 99))
Ainsi, la dernière combinaison (98 99) n’est pas suivie d’une virgule ni d’un espace.
“Si i n’est pas égal à 98 et j n’est pas égal à 99”
! → “ne … pas” (부정)
== → “égal à” (같다)
&& → “et” (그리고)
즉 의미는:
“i가 98이 아니거나, j가 99가 아닌 경우”
여기까지만 하자.....
Ce programme affiche un nombre entier, même négatif, en utilisant une fonction récursive.
- ft_putchar : affiche un caractère sur la sortie standard.
- ft_putnbr (fonction récursive) :
- Si le nombre est négatif, on affiche '-' et on rend le nombre positif.
- Si le nombre a plusieurs chiffres, la fonction s’appelle elle-même pour afficher les chiffres de gauche à droite.
- On affiche ensuite le dernier chiffre avec ft_putchar(n + '0').
- main : appelle ft_putnbr(-10), ce qui affiche :
Remarque : on utilise long pour éviter un dépassement si le nombre est le minimum d’un int.
네이버 블로그에 다른 풀이법 있음
'라피씬' 카테고리의 다른 글
| 한국어 설정하는 법 (0) | 2025.09.07 |
|---|---|
| 쉘 01 (2) | 2025.09.07 |