using a single printf 15.3.1 Problem Given a right triangle, the length of two of its sides, and the interior angles in radians, find the length of the missing side. Input will always be given in the order of (opposite, adjacent, hypotenuse, x,y ), with the missing side omitted. In this challenge, you will be writing functions to find the missing side length using both the Pythagorean theorem and by using trigonometry. Then, print the dimensions of all three sides, and both angles. The block of dimensions should start and end with a new line. 15.3.2 Preconditions You must provide a series of functions which meet the requirements in the table below. You you may include other functions as long as the requested functions execute correctly. Do not include a main function in your source or header files. In thin contract, are you are only able to use a single printf statement (or equivalent) in any of your files. Having more than one printf statement will result in a grade of zero for this contract. Each function asks you to find the opposite, adjacent, or hypotenuse using either the Pythagorean theorem (Pyth) or trigonometry (Trig). These functions will be checked to ensure proper math functions are used. Math functions can be found in the math.h library. 15.3.3 Postconditions Your function must output to the standard output stream, but it may only do so once per function call. The output consists of seven lines: a blank line, a line containing the value of the opposite side, a line containing the value of the adjacent side, a line containing the value of the hypotenuse, a line containing the value of the x angle, a line containing the value of the y angle, and another blank line. Each line with a value must include the name of the value and an equals sign (= ). When printing your double values to the screen, you should print them to two decimal places. This is not necessarily the same as rounding! Make sure you research floating point format specifiers with printf and how to limit the number of decimal places printed. 15.3.4 Restrictions You may not use any C statements or structures not introduced in this lab, which includes (but is not limited to) conditional statements and loops. Important Notes The pipeline does not confirm these restrictions, but our marking scripts will, so the pipeline will not fail if any restricted code is included. However, if the marking seript catches restricted code in your program, you will receive 0 for this contract. 15.3.5 File Requirements This contract requires you to provide a C source file named triangle.c and a C header file named triangle.h. Your header file should contain your forward declarations. Your source file must not contain a main function, or it will fail during marking. Your source and header files should be placed in the Lab2/triangle/ directory in your GitLab repository. 15.3.5 File Requirements This contract requires you to provide a C source file named triangle.c and a C header file named triangle.h. Your header file should contain your forward declarations. Your source file must not contain a main function, or it will fail during marking. Your source and header files should be placed in the Lab2/triangle/ directory in your GitLab repository. 15.3.6 Testing To test your code, you can compile your source file with the triangleM.o object file found in CI/objects/triangle/. It can then be executed as normal. Note that because we're using floating point values, it's possible that your values may vary slightly after several decimal places are considered. By reducing the calculated values to two decimal places, we limit the error and have never had a correct submission fail the pipeline. However, it's possible that we could run into some kind of error with a valid calculation. If you have problems with your calculations failing because of a slight error at two decimal places, let us know right away and we can work out a solution