We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Conditional Statements Structure Question

Waterstone
Waterstone asked
on
Medium Priority
515 Views
Last Modified: 2010-04-15
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
Comment
Watch Question

Commented:
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)


CERTIFIED EXPERT
Commented:
hi Waterstone,

as you wrote:

min2(x,y)   (x < y) ? x : y;

so

min3(x,y,z)   min2( min2( x, y ), z );

and

max4( x, y, z, w )    max2( max2( max2( x, y ), z ), w );


hope it helps
ike

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
CERTIFIED EXPERT
Top Expert 2006

Commented:
#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
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.