我正在写一个代码,将celsius转换为fahrenheit,在输入中输入.2f%,但它不起作用:-
#include <stdio.h>
int main()
{
float celcius, fahrenheit;
printf("Enter the Temperature in Celsius n");
scanf("%.2f", &celcius);
printf("Temperature in Fahrenheit is %.2f",celcius * 9/5+32);
return 0;
}
但在我从输入中删除.2f%之后,它就开始工作了。那里出了什么问题?
scanf()
未指定为以有限精度读取文本。
scanf("%.2f", &celcius);
是一个无效的说明符,因此结果是未定义的行为。
代码可以使用scanf("%10f", &celcius);
读取最多10个字符(在消耗了可选的前导空格之后(,但这并不能真正达到OP的目标。
提示:检查scanf("%.2f", &celcius);
的返回值。