Assignment 1 Write 2 functions with the calling sequences int dumadd(int *a, int *b, int *c, int len), int dumsub(int *a, int *b, int *c, int len), performing addition and subtraction of "long" real numbers, represented by integer arrays of length len+2. In each of the above functions, arrays *a, *b contain the input operands, whose contents may not be altered; on exit, the array *c will contain the result of the operation. The structure of the representation is illustrated by the following two examples. Example 1. Integer array of length 7 (here, len=5) 1 3 2 7 4 3 5 represents the real number 3 1 * 0.27435 * 10 . Example 2. Integer array of length 10 (here, len=8) -1 -2 7 4 1 2 8 2 1 represents the real number -2 -1 * 0.7412821 * 10 . In other words, the first element (in C, this is element number 0) of the array represents the sign of the number (-1 means negative, 1 means positive), the second element is the decimal exponent, and the remaining len elements represent the decimal mantissa. You may assume that in all cases, len < 1001. The maximal permitted absolute value of the decimal exponent is 1000 000; if the result of any operation has the exponent whose absolute value exceeds 1000 000, an error code is returned (see below); in such cases, the function does not alter the contents of *c. The error code returned by each function is its own integer value. The possible values for the functions dumadd, dumsub are 0 (successful conclusion) and 1 (overflow, the absolute value of the exponent is bigger than 1000 000). This assignment is due on Wednesday, September 27.