Q:

C function syntax

I'm kind of new to C and started looking through Learn C (http://www.learn-c.org/). In the function section the exercise asks the user to print out x is big if x > 10. My issue is that the official answer is 
int print_big(int number){
    if(number > 10){
        printf("%d is big\n",number);
    }
}

Why is the output type an int and not a void type? Also, could someone please explain how the function is printing out x is big text when the output type is an integer? Is it because the x is big text is small enough to fit in the memory "container" an integer would fit in?

A:

Ideally, the function should return void, as the function is not returning anything for the caller.
void print_big(int number){
    if(number > 10){
        printf("%d is big\n",number);
}

A:

Your function should be ..
void print_big(int number){
 if(number > 10){
    printf("%d is big\n",number);
 }

Because you are not returning anything.. Your function should be under type of function with argument and without return type.

A:

Also, could someone please explain how the function is printing out x is big text when the output type is an integer?

The output and the return value are two completely different things; the text is not being returned to the caller of the function, it's simply being written to the standard output stream.  
As written, nothing is being returned to the caller of the function.  It would be used like so:
void foo( void )
{
  int val = 0;
  printf( "gimme a number: " );
  scanf ( "%d", &val );
  print_big( val );
}

Notice that foo doesn't assign the result of print_big to anything; that's what we mean by "the caller isn't using the value".  Whatever is being returned is simply discarded.
As mentioned in the comments, the solution code could be a holdover from K&R days (late 1970s-mid 1980s), before the 1989 language standard.  Until the 1989 standard, there was no void type; the standard practice was to make the function type int and the have caller not use the return value.  Although that doesn't excuse the lack of a return statement in the solution code.
Or it could just be poorly written code (which is far more likely); unfortunately, there are a lot of people who think they know C and wish to share their knowledge, but they get a lot of things wrong and pass on a lot of misinformation and bad practice.  Be wary of all online tutorials and most print references.  
The official solution should either be typed void:
void print_big( int number )
{
  if ( x > number )
   printf( "x is big\n" );
}

or it should have an explicit return statement:
int print_big( int number )
{
  if ( x > number )
    printf( "x is big\n" );
  return 0;
}

As should be obvious from this discussion, value returned by a function doesn't have to be used.  For example, the printf function returns the number of bytes written to the output stream, but you don't often see code that explicitly checks that result; the result is usually discarded (i.e., not assigned to anything).  Similarly, scanf returns the number of successful conversions and assignments.  Again, a lot of people simply ignore that result (although they shouldn't).  

