c语言如何判断仅能输入float类型,不能输入其他出错,能否看出哪里出了问题

img

判断仅能输入float浮点数,不能输入其他类型,
1英文判断正确;
2汉字判断正确;
3纯符号判断正确;
4数字+符号判断错误,
数字+英文判断错误,
数字+汉子判断错误,

因为scanf读取浮点数是读到非浮点数字符结束,所以输入数字和其他字符,数字都会被读到