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
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
#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)