C语言温度输出代码哪里写错了

img


这代码哪里写错了,为什么输出是0.0%,按理说我的公式应该没打错,是输入写错了吗

1、输入三次都是大于0,所以code_days的值一直都是默认值0,所以输出是0%没问题。
2、并不是按q退出,只要不是数字都是退出。

FREEZING定位为常量0;然后温度没有低于0度的,所以cold_days为0天,即占比0%。

没毛病啊
3天都是30多度,没有一天是0度以下,可不是0%么

【以下回答由 GPT 生成】

问题所在在于使用了错误的scanf函数来读取输入。在代码中使用了scanf_s函数来读取输入,但是这个函数在标准C库中并不存在。正确的函数应该是scanf函数。

修正后的代码如下:

#include <stdio.h>

int main(void)
{
    const int FREEZING = 0;
    float temperature;
    int cold_days = 0;
    int all_days = 0;

    printf("请输入每日低温的数据,使用摄氏度,输入回车后停止。\n");
    while (scanf("%f", &temperature) == 1)
    {
        all_days++;
        if (temperature < FREEZING)
            cold_days++;
    }

    if (all_days != 0)
        printf("总共有%d天,其中%.1f%%低于冰点。\n", all_days, 100.0 * (float)cold_days / all_days);
    else
        printf("没有输入任何数据。\n");

    return 0;
}

请尝试使用修正后的代码再运行一次,应该能够得到正确的结果。



【相关推荐】



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