To obtain maximum value by placing Addition, Multiplication operators and brackets

Given three integers, your task is to obtain the maximum value possible by placing appropriately Addition operator, multiplication operator and brackets between the numbers.

For Example:
If a=5,b=4,c=3
Then the possible combinations are:
a*b*c, gives 60
a*(b+c), gives 35

a+b*c, gives 17
a*b+c, gives 23
a+b+c, gives 12
(a+b)*c, gives 27

So, the output is 60, which is the maximum possible value.

Method 1:


Implementation:

#include<stdio.h>

/*Function to return the maximum among a & b */
int getmax ( int a, int b )
{
      return a > b ? a : b;
} 

int main()
{
      int x, y, z, max;
      
      /* Getting the First number from the user */
      scanf ( " %d ", &x ); 

      /* Getting the Second number from the user */
      scanf ( " %d ", &y ); 

      /* Getting the Third number from the user */
      scanf ( " %d ",&z ); 

      /*There are 6 possibilities of placing four operators between three numbers (brackets inclusive)*/
      max = x * y * z;
     
     /*Update everytime maximum value to the "max" variable*/
      max = getmax ( max, ( x * ( y + z ) ) ); 
      max = getmax ( max, ( x + y * z ) );
      max = getmax ( max, ( x * y + z ) );
      max = getmax ( max, x + y + z );
      max = getmax ( max, ( x + y ) * z );

      /*Print the maximum value obtained by placing the operators between the operands*/
      printf ( " %d ", max ); 
 
      return 0;
}