-
Notifications
You must be signed in to change notification settings - Fork 0
/
21_ft_descriptive_int.C
130 lines (115 loc) · 3.86 KB
/
21_ft_descriptive_int.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
Write the function ft_descriptive_int that will take an integer as an argument
The function must print the integer following the format:
n_milliards Milliards n_millions Millions n_thousand Thousand n_hundred Hundred under_hundred
To approach the real world calling, if the integer is composed of 0 Milliards/Millions/Thousands etc, you will not actually write "0 Milliards/Millions/Thousands"
The function must be prototyped as follows: void ft_descriptive_int(int n);
Examples:
// Call 1
ft_descriptive_int(-2147483648);
# Output 1 (-2.147.483.648)
-2 Milliards 147 Millions 483 Thousand 6 Hundred 48
// Call 2
ft_descriptive_int(480000);
# Output 2 (480.000)
480 Thousand
// Call 3
ft_descriptive_int(0);
# Output 3
// Call 4
ft_descriptive_int(8068);
# Output 4 (8.068)
8 Thousand 68
*/
#include <stdio.h>
void ft_descriptive_int(int n)
{
int n_milliards, n_millions, n_thousand, n_hundred, under_hundred;
if (n >= 1000000000 && n >= 1000000)
{
n_milliards = n / 1000000000;
n_millions = n % 1000000000 / 1000000;
n_thousand = n % 1000000 / 1000;
n_hundred = n % 1000 / 100;
under_hundred = n % 100;
printf("%d Milliards %d Millions %d Thousand %d Hundred %d\n", n_milliards, n_millions, n_thousand, n_hundred, under_hundred);
}
else if (n <= 1000000000 && n >= 1000000)
{
n_millions = n % 1000000000 / 1000000;
n_thousand = n % 1000000 / 1000;
n_hundred = n % 1000 / 100;
under_hundred = n % 100;
printf("%d Millions %d Thousand %d Hundred %d\n", n_millions, n_thousand, n_hundred, under_hundred);
}
else if (n < 1000000 && n >= 1000)
{
n_thousand = n % 1000000 / 1000;
n_hundred = n % 1000 / 100;
under_hundred = n % 100;
printf("%d Thousand %d Hundred %d\n", n_thousand, n_hundred, under_hundred);
}
else if (n < 1000 && n >= 100)
{
n_hundred = n % 1000 / 100;
under_hundred = n % 100;
printf("%d Hundred %d\n", n_hundred, under_hundred);
}
else if (n < 100 && n > 0)
{
under_hundred = n % 100;
printf("%d\n", under_hundred);
}
else if (n < 0 && n >= -100)
{
under_hundred = n % 100;
printf("%d\n", under_hundred);
}
else if (n < 0 && n >= -1000)
{
n_hundred = n % 1000 / 100;
under_hundred = -n % 100;
printf("%d Hundred %d\n", n_hundred, under_hundred);
}
else if (n < -1000 && n >= -1000000)
{
n_thousand = n % 1000000 / 1000;
n_hundred = -n % 1000 / 100;
under_hundred = -n % 100;
printf("%d Thousand %d Hundred %d\n", n_thousand, n_hundred, under_hundred);
}
else if (n < -1000000 && n >= -1000000000)
{
n_millions = n % 1000000000 / 1000000;
n_thousand = -n % 1000000 / 1000;
n_hundred = -n % 1000 / 100;
under_hundred = -n % 100;
printf("%d Millions %d Thousand %d Hundred %d\n", n_millions, n_thousand, n_hundred, under_hundred);
}
else if (n <= -1000000000)
{
n_milliards = n / 1000000000;
n_millions = -n % 1000000000 / 1000000;
n_thousand = -n % 1000000 / 1000;
n_hundred = -n % 1000 / 100;
under_hundred = -n % 100;
printf("%d Milliards %d Millions %d Thousand %d Hundred %d\n", n_milliards, n_millions, n_thousand, n_hundred, under_hundred);
}
}
/*
int main()
{
ft_descriptive_int(1999999999);
ft_descriptive_int(999999999);
ft_descriptive_int(999999);
ft_descriptive_int(999);
ft_descriptive_int(99);
ft_descriptive_int(0);
ft_descriptive_int(-99);
ft_descriptive_int(-999);
ft_descriptive_int(-999999);
ft_descriptive_int(-999999999);
ft_descriptive_int(-1999999999);
return (0);
}
*/