Homework 2: C programming Due date: July 13thth, in class. Turn in the hard copy of the listing. 1. Write a C program which for an array of floating point numbers counts the number of numbers smaller than zero, equal with zero and larger than zero in the array. Print out these three numbers. 2. Write a C function called factorial which returns the factorial of a number (n! = 1 * 2 * 3 * ... * n). Both the parameters and the return value should be long int. Write a main function and test the function by printing its return value. 3. Modify the program in step 3 such that it tests for incorrect input values. For example, negative numbers do not have factorials. Also, for numbers too large the factorial will be too large and will overflow the data type. What it the largest input number for which the factorial still fits in a long int? 4. Consider the following structure which describes the position of an airplane: struct Position { int latitute; int longitude; } a) Write a function PrintPosition which prints out a structure of type Position passed as a parameter. b) Write a function "move" which takes three parameters: -the position of an airplane as a Position structure -the difference of latitude -the difference in longiture The function should modify the Position structure passed to it. (Hint: you should use pointers).