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;
}
请尝试使用修正后的代码再运行一次,应该能够得到正确的结果。
【相关推荐】