Link to home
Create AccountLog in
Avatar of Waterstone
Waterstone

asked on

Conditional Statements Structure Question

Hello Experts,

I'm trying to help my daughter with her C homeowork.  I'm a longtime developer but have not worked in C in decades.  She has the following problem:

The mathematical operation min(x,y) can be represented by the conditional
   expression

     (x < y) ? x : y

   In similar fashion, using only conditional expressions, describe the
   mathematical operations:

   min(x, y, z)             and          max(x,y,z,w)

I understand how the min(x,y) translate into (x < y) ? x : y
 and that (x < y) ? x : y  is tha same as If x < y then x else y
but am drawing a blank as to how to code the two problems.

Can anyone help?

Thanks,
Steve
Avatar of avinthm
avinthm

min(x,y,z)
(x<y) ? ((x < z) ? x : z) : ((y < z) ? y : z) ;

i hope this works....
the same way you can write to max(x,y,z,w)


ASKER CERTIFIED SOLUTION
Avatar of ikework
ikework
Flag of Germany image

Link to home
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
See answer
#include <stdio.h>

int main()
{
      int i=10,j=3,k=12,l=9;
      int max,min;

      min = (i<j)?((i<k)?i:k):((j<k)?j:k);

      max = (j>i)?((j>k)?(j>l?j:l):(k>l?k:l)):((i>k)?(i>l?i:l):(k>l?k:l));

      printf("min %d max %d",min,max);
}

Cheers!
sunnycoder
u can write the solution for finding minimam of N number,
first u hav to pass the numbers into the array
pass the array and the no. arg over the function named min
the function is like this,
int min(int arr[20],int noarg)  //arr[20]  is the array which are having no.//noarg  is the no. arguments
{
   int i,min=arr[0];
    for(i=1;i<noarg;i++)
    {
      min=(min<arr[i])?min:arr[i]);
    }
   return min;
}
Hi Waterstone,

They're probably looking for something like:

#define Min(x,y) ((x)<(y)?(x):(y))
#define Min3(x,y,z) (Min(x,y)<(z)?Min(x,y):(z))
...

Paul