克肆光神


私信TA

用户名:qingyuhang

访问量:2482

签 名:

等  级
排  名 9001
经  验 1194
参赛次数 0
文章发表 7
年  龄 0
在职情况 学生
学  校 江西经济管理干部学院
专  业 软件技术专业

  自我简介:

解题思路:据题目要求,按从小到大排序,那么就需要得到最大值,最小值以及中间值才能排序。也就是说要让电脑知道,什么是最大,什么是最小然后再来排序。

大小的比较有做差法(a-b>0),做商法(a\b>1)等等……

首先我们先做简单的,求最大值和最小值。

做题做的多的可能立马就把      min=(a<b?a:b)<c?(a<b?a:b):c   给打出来了,大概意思就是通过比较得出最小值。通过a<b?a:b得出a,b中间的较小值,再用a,b中间的较小值和c对比……

但是我注意到一点,就是中间的值较为难求,这也是这里最难的地方(大概?)

一共就3个数字,我们要就事论事,既然最大值和最小值都十分的好求,那么为什么不能利用(中间值)=a+b+c-最大值-最小值    来求出中间值呢?这样不香吗?
注意事项:不要把;和:混淆了,不然很难看出什么地方错误了。

参考代码:

#include<stdio.h>

int main()

{

    int a,b,c,x1,x2,x3;

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

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

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

    x2=a+b+c-x1-x3;

    printf("%d %d %d",x1,x2,x3);

}


 

0.0分

7 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

厉害。。。。
2021-09-27 21:03:06
厉害。还可以这样完成!
2021-09-07 21:34:32
不喜勿喷,我只不过有感而发
2020-10-16 21:34:47
  • «
  • 1
  • »