C语言编程问题求解答

输入三个数(包括整数与浮点数),按由小到大的顺序输出。若输入为整数,则按整数输出;若输出为浮点数,则输出为浮点数,且保留小数点后2位。(请使用参数为指针的函数来完成!!!)
关于输入
输入为三个数,逗号隔开。
关于输出
输出为按由小到大顺序排列的数,用逗号隔开。
例子输入
25,48,37
例子输出
25,37,48
提示
无。


#include<stdio.h>

void sort(float a,float b,float c){
    if(a<=b && a<=c){
        //a最小,输出
        printf("%g,",a);
        if(b<=c){
            printf("%g,%g",b,c);
        }
        else{
            printf("%g,%g",c,b);
        }
    }    
    if(b<=a && b<=c){
        //a最小,输出
        printf("%g,",b);
        if(a<=c){
            printf("%g,%g",a,c);
        }
        else{
            printf("%g,%g",c,a);
        }
    }
    if(c<=b && c<=a){
        //a最小,输出
        printf("%g,",c);
        if(b<=a){
            printf("%g,%g",b,a);
        }
        else{
            printf("%g,%g",a,b);
        }
    }
}

int main(){
    //输入三个数(包括整数与浮点数)
    float firstNumber=0,secendNumber=0,thirdNumber=0;
    scanf("%f,%f,%f",&firstNumber,&secendNumber,&thirdNumber);
    sort(firstNumber,secendNumber,thirdNumber);
    return 0;
}

利用C++重载函数机制可定义以下两个函数
void sort(int a,int b,int c); //实现整数的排序和输出
void sort(double x,double y,double z); //实现浮点数的排序和输出
/关于浮点数保留小数点后两位的设置,可采用cout<<setiosflags(ios::fixed) << setprecision(2)<<+所要输出的变量/


主函数部分
int main(); //主函数定义三个变量,以及对应的三个指针,比如整型:int a; *p1 = &a;定义三个,浮点型类似,调用两个函数即可。

望采纳!


#include<stdio.h>

void change(double* n1, double* n2)
{
    double temp = *n1;
    *n1 = *n2;
    *n2 = temp;
}

int main()
{
    double a, b, c;
    scanf("%lf,%lf,%lf", &a, &b, &c);

    if (a > b)
    {
        change(&a, &b);
    }
    if (a > c)
    {
        change(&a, &c);
    }
    if (b > c)
    {
        change(&b, &c);
    }
    if (a - (int)a > 0)
        printf("%.2f,", a);
    else
        printf("%d,", (int)a);
    if (b - (int)b > 0)
        printf("%.2f,", b);
    else
        printf("%d,", (int)b);
    if (c - (int)c > 0)
        printf("%.2f", c);
    else
        printf("%d", (int)c);
    return 0;
}