【C语言】之''数字排序''

老师平时布置的希冀系统上的作业答案,仅供参考!

【问题描述】

编写一个程序,将输入的三个数从小到大排列出来。

【输入形式】

用户在第一行输入三个数字,每个数字用空格分开。

【输出形式】

程序在下一行按照从小到大的顺序将三个数字输出出来,每个数字也用空格分开。要求程序可以处理整数和浮点数两种输入情况的比较。

【样例输入】

2.4 5.6 1.5

【样例输出】

1.5#2.4#5.6 #表示空格(要求输出时输出空格,而不是输出#,这里#只是表示空格而已!)

【样例说明】

输入3个数字,每个数字之间用空格分开,并且进行从小到大排列,最后进行输出。这里的数字可以是整数,也可以是浮点数。
提示:输入时以%f格式读入到float类型的变量中,排完序以后,输出时以%g格式输出即可。

【参考答案】

#include<stdio.h>
#include<math.h>
float max(float a, float b);
float min(float a, float b);
int main()
{
    float a,b,c;
    scanf("%f %f %f",&a,&b,&c);
    float s[3];
    s[0]=max(a,max(b,c));
    s[2]=min(a,min(b,c));
    if(a>s[2]&&a<s[0])
        s[1]=a;
    if(b>s[2]&&b<s[0])
        s[1]=b;
    if(c>s[2]&&c<s[0])
        s[1]=c;
    printf("%g %g %g",s[2],s[1],s[0]);
}

float max(float a, float b)
{
    if(a>b)
        return a;
    if(a<b)
        return b;
}
float min(float a, float b)
{
    if(a>b)
        return b;
    if(a<b)
        return a;
}
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容