冬蕶 发表于 2024-3-28 19:15:23

题目是输入三个单精度浮点数,输出最小值,显示错误了

#include <stdio.h>
int main ()
{
    float a,b,c;
    printf("请输入三个单精度浮点数:");
    scanf("%f,%f,%f",a,b,c);
    if (a<b<c)||(a<c<b){
    printf("最小值为:%f",a);
    }
    if (b<a<c)||(b<c<a) {
    printf("最小值为:%f",b);
    }
    if (c<b<a)||(c<a<b) {
    printf("最小值为:%f",c);
    }
    return 0
}

FishC 发表于 2024-3-28 19:15:33

你好!你的代码有几个小错误。

首先,你没有包含stdio.h头文件。在C语言中,需要包含相应的头文件才能使用标准库函数。所以,请在开头添加 #include <stdio.h>。

其次,在使用scanf函数读取浮点数时,需要使用变量的地址作为参数。所以,你需要将a、b和c的参数改为&a、&b和&c。

最后,在if语句中,你没有写完整的条件表达式。你可以使用嵌套的三元运算符来找到最小值,并将结果赋给一个新的变量。然后,你可以使用printf函数输出最小值。

下面是修改后的代码:

#include <stdio.h>
int main()
{
    float a, b, c;
    printf("请输入三个单精度浮点数:");
    scanf("%f,%f,%f", &a, &b, &c);
   
    float min = (a < b) ? ((a < c) ? a : c) : ((b < c) ? b : c);
   
    printf("最小值为:%f\n", min);
   
    return 0;
}

希望能帮到你,如果有任何疑问,请随时提出来!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

冬蕶 发表于 2024-3-28 19:16:29

FishC 发表于 2024-3-28 19:15
你好!你的代码有几个小错误。

首先,你没有包含stdio.h头文件。在C语言中,需要包含相应的头文件才能使 ...

可以不用问号语句来编程吗

FishC 发表于 2024-3-28 19:16:44

冬蕶 发表于 2024-03-28 19:16
可以不用问号语句来编程吗

当然可以!我们可以使用if-else语句来实现找出三个数中的最小值。下面是不使用三元运算符的代码示例:

#include <stdio.h>

int main() {
    float a, b, c;
    printf("请输入三个单精度浮点数:");
    scanf("%f,%f,%f", &a, &b, &c);
   
    float min = a; // 先假设a为最小值
   
    if (b < min) { // 如果b比min小,说明b是最小值
      min = b;
    }
   
    if (c < min) { // 如果c比min小,说明c是最小值
      min = c;
    }
   
    printf("最小值为:%f\n", min);
   
    return 0;
}

希望这次能满足你的需求,如果还有其他问题,请随时提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 题目是输入三个单精度浮点数,输出最小值,显示错误了