C语言大一问题,不知道哪没对

想问大家能不能看看我哪没写对

img

img

img


为什么输入的是10,运行时上面显示的是“sign(0.000000)”啊,谢谢大家

sign()里面对应的是x的值,你看你的x是多少,判断等于用 ==

int main() {
    double x,y;
    printf("Enter  x: ");
    scanf("%lf", &x);
    if (x < 0) {
        y = -1;
    } else if (x == 0) {
        y = 0;
    } else {
        y = 1;
    }
    printf("sign(%.2lf) = %.2lf\n", x, y);
    return 0;
}

【以下回答由 GPT 生成】

问题的根本原因在于使用了错误的数据类型标识符导致,问题是在printf语句中使用了错误的格式化字符串。我们使用%d来格式化整数,但是实际上num是一个float(浮点数)类型,而不是整数类型。

要解决这个问题,你可以按照以下步骤进行操作:

  1. int num;更改为float num;,将num的数据类型更改为float

  2. printf语句中的格式化字符串%d更改为%f,以正确地显示num的值。

更新后的代码应如下所示:

#include <stdio.h>

int main() {
    float num;
    printf("请输入一个数:");
    scanf("%f", &num);
    printf("您输入的数是:%f\n", num);
    return 0;
}

这样修改后,您应该能够正确显示输入的数字。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^