I'm trying to fully understand the int main() myself. The post refered to above is the one I actually started. This little program that I have included may help in your understanding.
The program above points out that there is another function nested in the main function which returns an integer. I'm also still trying to grasp why you would want main() to return an integer unless it was to be called by another program and you wanted to know if the program was true or false.
/* Program to calculate the product of two numbers. */
int product(int x, int y);
/* Input the first number */
printf("Enter a number between 1 and 100: ");
/* Input the second number */
printf("Enter another number between 1 and 100: ");
/* Calculate and display the product */
c = product(a, b);
printf ("%d times %d = %d\n", a, b, c);
/* Function returns the product of its two arguments */
int product(int x, int y)
return (x * y);