问答详情
源自:4-8 循环结构之for循环(一)

有3个实数x,y,z,由键盘输入,要求输出其中最大的数。请问我哪儿错了呀

#include<stdio.h>

int main()

{

float x,y,z;

scanf("%f,%f,%f",&x,&y,&z);

if(x>y)

{

if(x>z)

{

printf("%f",x);

}

else

{

printf("%f",z);

}

}

else if(y>z)

{

printf("%f",y);

}

else

{

printf("%f",z);

}

return 0;

}


提问者:慕斯卡2116755 2021-04-11 23:10

个回答

  • 慕哥3516691
    2021-11-20 15:26:21

    scanf内%f后不能放逗号,系统编译器会把逗号也一起翻译,导致最后的你地址符号(&)的输出也要打逗号才能判断,不然系统读取就会出错,例如编译运行以后,             输入三个数:4,65,54                           系统才会打印65

  • qq_慕虎9294303
    2021-04-13 20:04:46

    scanf("%f,%f,%f",&x,&y,&z);里%f,%f,%f存在逗号输入数字的时候要1,2,3才行

    代码是正确的

  • 卿屿轻尘
    2021-04-12 08:55:17

    #include<stdio.h>

    int main()

    {

    float x,y,z;

    scanf("%f,%f,%f",&x,&y,&z);

    if(x>y)

    {

    if(x>z)

    {

    printf("%f",x);

    return  x;

    }

    else if(x<z)

    {

    printf("%f",z);

    return  z;

    }

    }

    else if(y>z)

    {

    printf("%f",y);

    return  y;

    }

    else if(y<z)

    {

    printf("%f",z);

    return  z;

    }

    return 0;

    }