summaryrefslogtreecommitdiffstats
path: root/3/5.c
diff options
context:
space:
mode:
authorSadeep Madurange <smadurange@users.noreply.github.com>2021-12-04 13:15:03 +0800
committerSadeep Madurange <smadurange@users.noreply.github.com>2021-12-04 13:15:03 +0800
commitbf657af77c6bea76a1b556044275b06d54e8b390 (patch)
treef427e4b674e154f5fca2f1b36bb26cfc3b97c2b1 /3/5.c
parent5e79ec231903d0a6098f9729362339677aed2088 (diff)
downloadk&r-exercises-bf657af77c6bea76a1b556044275b06d54e8b390.tar.gz
3.5
Diffstat (limited to '3/5.c')
-rw-r--r--3/5.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/3/5.c b/3/5.c
index b5c833e..ed57b20 100644
--- a/3/5.c
+++ b/3/5.c
@@ -40,18 +40,26 @@ void reverse(char s[]) {
}
void itob(int n, char s[], int b) {
- int i, sign;
+ int i, sign, mod;
i = 0;
sign = n < 0;
if (n >= 0) {
do {
- s[i++] = (n % b) + '0';
+ mod = (n % b);
+ if (mod < 10)
+ s[i++] = mod + '0';
+ else
+ s[i++] = mod - 10 + 'A';
} while ((n /= b) > 0);
} else {
do {
- s[i++] = -(n % b) + '0';
+ mod = -(n % b);
+ if (mod < 10)
+ s[i++] = mod + '0';
+ else
+ s[i++] = mod - 10 + 'A';
} while ((n /= b) <= -1);
}