c语言:请编写函数myfun( ),其功能是:从3个形参a,b,c中找出中间的那个数,作为函数值返回。

如题所述

#include <stdio.h>

int myfun(int a,int b,int c){

int t; 

t=(a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b)); 

return t; 

}

main(){ 

int a1=3,a2=5,a3=4,r;

r=myfun(a1,a2,a3);

printf("\nThe middle number is: %d\n ",r);

}

扩展资料:

三目运算符:

condition ? expression1 : expression2

expression1和expression2是两个操作数。如果condition = true,则结果为expression1,否则为expression2。

跟下面的if...else...类似:

if(表达式1){

表达式2;

}else{

表达式3;

}

三目表达式和if-else语句可以互换:

int num1=10,num2=20,num3=30;

int res = num1 ? num1+num2 : num1+num3;

printf("res=%d\n",res);//30

    

int num1=10,num2=20,num3=30;

int res = 0;

if(num1){

res = num1 + num2;

}else{

res = num1 + num3;

}

printf("res=%d\n",res);

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-14
#include <stdio.h>
int myfun(int a, int b, int c)
{
    if (a > b && a > c){
        if (b > c)return b;
        else return c;
    }
    else if (b > c){
        if (a > c)return a;
        else return c;
    }
    else {
        if (a > b)return a;
        else return b;
    }
}
int main()
{
    printf ("%d\n", myfun(1, 3, 2));
    return 0;
}

本回答被提问者采纳
第2个回答  2015-07-03
#include <stdio.h>
#define TOTAL_NUMBER 3

int myfun(int a,int b,int c)
{
int i,j;
int temp;
int all[TOTAL_NUMBER];
all[0]=a;
all[1]=b;
all[2]=c;
for(i=0;i<TOTAL_NUMBER;i++)
for(j=i+1;j<TOTAL_NUMBER;j++)
{
if (all[i]>all[j])
{
temp=all[i];
all[i]=all[j];
all[j]=temp;
}
}
return all[TOTAL_NUMBER/2];
}

int main()
{
int a,b,c;
printf("Please input 3 numbers:\n");
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
printf("The middle number is %d\n",middle(a,b,c));
}
相似回答