• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 373
  • Last Modified:

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
0
Waterstone
Asked:
Waterstone
1 Solution
 
avinthmCommented:
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)


0
 
ikeworkCommented:
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
0
 
sunnycoderCommented:
#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
0
 
deepu chandranCommented:
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;
}
0
 
PaulCaswellCommented:
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
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Making Bulk Changes to Active Directory

Watch this video to see how easy it is to make mass changes to Active Directory from an external text file without using complicated scripts.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now