From 00af3bb6a98925c1b997f3b077615627e31ba24c Mon Sep 17 00:00:00 2001 From: sinanmohd Date: Sat, 4 Jun 2022 12:18:08 +0530 Subject: fix for most -ve int --- 3.4.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/3.4.c b/3.4.c index 51386c6..d4a1c9a 100644 --- a/3.4.c +++ b/3.4.c @@ -8,7 +8,7 @@ char* itoa(int n, char str[]); int main(void) { - int n = -2147483648; + int n = 2147483647; char str[MAXLEN]; printf("%d\n", n); @@ -38,8 +38,8 @@ itoa(int n, char str[]) { int sign, i; - if ((sign = n) < 0) - n = -n; + /* to include the most -ve int*/ + n = ((sign = n) < 0) ? -(n+1) : n-1; i = 0; do { @@ -49,6 +49,7 @@ itoa(int n, char str[]) if (sign <0) str[i++] = '-'; + str[0] += 1; str[i] = '\0'; reverse(str); -- cgit v1.2.3