求三个不同整数的中间值

问题如上,我会使用if语句进行判断,但是写出来的程序太长,求问有没有简单一点儿的方法。

求极值比较简单,中间值确实很烦,得先排序

int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
if(a>b){d=a;a=b;b=d;}
if(b>c){d=b;b=c;c=b;}
if(a>b){d=a;a=b;b=d;}
printf("%d",b);