白胡子


私信TA

用户名:333333333

访问量:3464

签 名:

小白的白

等  级
排  名 9581
经  验 1082
参赛次数 0
文章发表 8
年  龄 19
在职情况 学生
学  校
专  业 计科

  自我简介:

争取不秃

TA的其他文章

解题思路:三个数排序,需要比较大小,然后排序,max和min还好,主要是中间值稍微有些难度(我第一个想到的是三目,奈何头脑有限,中间值想不明白,于是借鉴了下优质题解的回答,想清楚之后自己按照理解码的)

注意事项:注意题意,从小到大,不是从大到小(没错,我看错过)


参考代码:

#include

int main()

{

    int a,b,c,max,min,mid;

    scanf("%d %d %d",&a,&b,&c);

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

    min=(a<b?a:b)<c?(a<b?a:b):c;

   mid=a<b?(a>c?a:(c<b?c:b)):(a<c?a:(c>b?c:b));

                                                                                                                                                          

                                                                                                                               若a<b,继续判断a和c的值,且a<c则继续判断b和c的值,谁小谁是mid

                                                                                                                                                                           a>c则a为中间值

(a>b的情况则与其相反)



    printf("%d %d %d",min,med,max);

    return 0;

}


(另外,实在不理解的话,用三目还有一种方法,mid=(a+b+c)-(max+min),解决这题是够了)


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区