-
Notifications
You must be signed in to change notification settings - Fork 0
/
47_ft_easy_putnbr.c
91 lines (73 loc) · 1.75 KB
/
47_ft_easy_putnbr.c
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/*
Write a function ft_easy_putnbr which takes an integer as an argument
The function must be prototyped as follows: void ft_easy_putnbr(int n);
The function will never be tested with integers outside of range [-100 ; 100]
If its argument is divisible by 8, print "Ocho" on standard output
If its argument is divisible by 5, print "Cinco" on standard output
If its argument is divisible by both 8 and 5, print "Muy bien" on standard output
Othwerwise, print the argument itself
All output must be followed by a newline character
Examples:
ft_easy_putnbr(4); // will output "4"
ft_easy_putnbr(8); // will output "Ocho"
ft_easy_putnbr(-5); // will output "Cinco"
ft_easy_putnbr(40); // will output "Muy bien"
Allowed functions: write
*/
#include <stdio.h>
#include <unistd.h>
void ft_putchar(char c)
{
write(1, &c, 1);
}
void ft_putstr(char *str)
{
int i;
i = 0;
while (str[i] != '\0')
{
ft_putchar(str[i]);
i++;
}
}
void ft_easy_putnbr(int n)
{
if (n % 8 == 0 && n % 5 == 0)
{
ft_putstr("Muy bien");
}
else if (n % 8 == 0)
{
ft_putstr("Ocho");
}
else if (n % 5 == 0)
{
ft_putstr("Cinco");
}
else
{
if (n < 0)
{
write(1, "-", 1);
n = -n;
}
if (n > 9)
{
ft_putchar(n / 10 + '0'); // ex: n = 17, 17 / 10 = 1
ft_putchar(n % 10 + '0'); // 17 % 10 = 17
}
else
{
ft_putchar(n % 10 + '0');
}
}
write(1, "\n", 1);
}
int main()
{
ft_easy_putnbr(4);
ft_easy_putnbr(8);
ft_easy_putnbr(-5);
ft_easy_putnbr(40);
return (0);
}