Write a complete C program which illustrates the Linked list applications data structures and algorithms that have been stressed throughout the course. The program will read in mid-semester test scores as Main Linked List and produce six (6) outputs:

1. A list of valid test scores for an assumed mid-semester test score range of 0 to 50.

2. A list of invalid test scores flagged as Errors and to be deleted from Main Linked List

3. The arithmetic average of the valid test scores.

4. The lowest and highest scores

5. A histogram, giving for each valid score a bar whose length is proportional to the number achieving that score.

6. The total number of invalid scores.

Given the following test data to be build as Main Linked List. :

30 55 27 43 -11 40 23 21 56 88 67 12

42 11 31 61 45 48 51 82 56 48 37 26