袁一航


私信TA

用户名:dotcpp0689705

访问量:3172

签 名:

https://www.msn.cn/zh-cn/play/arcade

等  级
排  名 844
经  验 3632
参赛次数 12
文章发表 74
年  龄 0
在职情况 学生
学  校 景园中学
专  业

  自我简介:

Gold Digger https://supermario-game.com/fullscreen

解题思路:

论坛是个好东西,写完自己的代码后要去多逛逛
下面来总结这道题的三种解法
方法一:
三目运算符求解
最大数:(a>b?a:b)>c?(a>b?a:b):c)
最小数:(a<b?a:b)<c?(a<b?a:b):c 中间数:a>b?(a<c?a:(b>c?b:c)):(a<c?(b>c?c:b):a)
上面三种数,中间数比较难想,但画个图解后也很容易得出
代码如下:

#include<stdio.h>int main(){    int a,b,c;    scanf("%d%d%d",&a,&b,&c);    printf("%d %d %d\n",(a<b?a:b)<c?(a<b?a:b):c,        a>b?(a<c?a:(b>c?b:c)):(a<c?(b>c?c:b):a),        (a>b?a:b)>c?(a>b?a:b):c);    return 0;}

方法二:
利用冒泡排序的思想:

#include <stdio.h>int main(){    int t,a,b,c;    scanf("%d%d%d",&a,&b,&c);    if(a>b)    {t=a;a=b;b=t;}    if(a>c)    {t=a;a=c;c=t;}    if(b>c)    {t=b;b=c;c=t;}    printf("%d %d %d ",a,b,c);    return 0;}

方法三:
因为只有三个数,且其中两个数特别好求,那我们可以剑走偏锋,先求出三个数的和,再用和减去最大的数和最小的数,剩下的就是中间数拉!

#include<stdio.h>int main(){    int a,b,c,mid,min,max;    scanf("%d%d%d", &a,&b,&c);     min =(a<b?a:b)<c?(a<b?a:b):c;    max =(a>b?a:b)>c?(a>b?a:b):c;    mid =a+b+c-min-max;    printf("%d %d %d",min,mid,max);     return 0; }

没有做不到,只有想不到,继续加油!




 

0.0分

1 人评分

  评论区

  • «
  • »