I don't understand the part about sorting the array. I know I am misunderstanding it, but I have been trying to understand it for quite some time and its not making sense to me.Code:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h> int main() { int i,j; double a[9]; printf ("This program determines the middle value\n"); printf ("of nine real numbers that you enter from the keyboard\n"); for (i = 0; i < 9; i++) { printf ("%d: ", i); scanf("%lg", &a[i]); } // Print the numbers printf ("You entered:\n"); for (i = 0; i < 9; i++) { printf ("%d: %lg\n", i, a[i]); } printf ("\n\n"); // Sort the array for (i = 0; i < 8; i++) { for (j = i+1; j < 9; j++) { if (a[j] < a[i]) { // Exchange them double temp = a[j]; a[j] = a[i]; a[i] = temp; } } } printf ("Sorted array:\n"); for (i = 0; i < 9; i++) { printf ("%d: %lg\n", i, a[i]); } printf ("\n\n"); printf ("The middle value is %lg\n", a[4]); getchar(); getchar(); return 0; }

For example: Say these are my array values

a[0]=5

a[1]=3

a[2]=2

a[3]=1

a[4]=7

a[5]=8

a[6]=9

a[7]=2

a[8]=3

This is how I am interpreting the program:

Is a[1] < a[0]? If so, switch them.

Since a[0] = 5 and a[1] = 3 this is true. Thus, I switch them and get:

a[0] = 3 and a[1] = 5.

Then i and j are both incremented to get the following:

is a[2] < a [1]? If so switch them.

a[1] is now 5, correct? Thus, a[1] IS larger than a[2]. So we switch them.

a[1] = 2 and a[2] = 5.

I continued, but there is already a problem here.

So far the array is a[0]=3, a[1] = 2, and a[2] = 5.

This is not sorted already from low to high. How exactly is this program taking values from a[8] for example and comparing them with a[2]?

I am just having trouble understanding this. I apologize for the long post, but I would really appreciate it if anyone can tell me exactly whats going on.

Thanks!

-Frankie