Hi, I have written a small function that can (I think) deal with

overflow/underflow while adding integers and divide by zero problem.

Can some one please tell me if I have done it correctly ? Would it be

safe to extend it to double precision floating point numbers since we

know that there is always some margin for error while adding floating

point numbers ? What other functions should I look to implement for my

project which needs heavy numerical computation ?

Code:#include <stdio.h> #include <limits.h> int add_chk(int a, int b) { if (b > 0) { if (a > INT_MAX - b) { fprintf(stderr, "Overflow error\n"); return (INT_MAX); } } if (b < 0) { if (a < INT_MIN - b) { fprintf(stderr, "Underflow error\n"); return (INT_MIN); } } return (a + b); } int div_chk(int a, int b) { if (b == 0) { fprintf(stderr, "Division by zero attempted\n"); return (INT_MAX); } return (a/b); } int main(void) { int i; int x, y; clrscr(); printf("Enter two numbers\n"); if (scanf("%d %d", &x, &y) != 2) { fprintf(stderr, "Error in user input\n"); return (1); } if ((x < INT_MAX && x > INT_MIN) && ( y < INT_MAX && y > INT_MIN)) { i = add_chk(x, y); printf("Sum: %d\n", i); i = div_chk(x, y); printf("Div: %d\n", i); } else { fprintf(stderr, "Values entered are out of range\n"); return (1); } return (0); }