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
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
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
#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
int main()
{
int i=10,j=3,k=12,l=9;
int max,min;
min = (i<j)?((i<k)?i:k):((j<k)?j
max = (j>i)?((j>k)?(j>l?j:l):(k>
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;
}
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
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
(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)