From b15749294b1dac15bf43989e5464fc4ed594673c Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Fri, 3 Dec 2021 19:15:03 +0800 Subject: 3.4 --- 3/4.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 3/4.c (limited to '3/4.c') diff --git a/3/4.c b/3/4.c new file mode 100644 index 0000000..1ec8d15 --- /dev/null +++ b/3/4.c @@ -0,0 +1,48 @@ +#include +#include +#include +#include + +#define MAXLEN 50 + +void itoa(int n, char s[]); +void reverse(char s[]); + +int main(int argc, char *argv[]) { + char s[MAXLEN]; + + itoa(INT_MIN, s); + printf("Largest negative number on machine: %d\n", INT_MIN); + printf("Largest negative number after itoa: %s\n", s); + + return 0; +} + +void itoa(int n, char s[]) { + int i, sign; + + i = 0; + + if ((sign = n) < 0) + n = -n; + + do { + s[i++] = n % 10 + '0'; + } while ((n /= 10) > 0); + + if (sign < 0) + s[i++] = '-'; + s[i] = 0; + + reverse(s); +} + +void reverse(char s[]) { + int c, i, j; + + for (i = 0, j = strlen(s) - 1; i < j; i++, j--) { + c = s[i]; + s[i] = s[j]; + s[j] = c; + } +} \ No newline at end of file -- cgit v1.2.3