求一个学院所有学生某科成绩的平均分,为啥我的程序只能输入一个数字,为啥得出的是这个结果

img

scanf("%5.2f, &x)改为scanf("%lf", &x);
double类型对应的输入格式是%lf
float类型对应的输入格式是%f
另外,对于scanf()输入,你可以在上面格式加上最多域宽限定,比如%5lf,表示最多读5个字符表示的double类型
但是%5.2lf不是合法的输入格式,输入格式没有控制精度选项。
%5.2lf是合法的输出格式,表示输出占5个字符,其中小数点后保留2位。

img


框中的scanf("%5.2f",&x);改为scanf("%lf",&x);原因如下:
%5.2f:5.2是指总长是五位数(注意小数点也算一位数长),就是小数点前两个数字,不足用空格表示,小数点后保留两位,不足四舍五入!
scanf作为格式输入函数,这样的格式说明,就意味着需要按照这样来,然后进行输入数据。如果不按照格式说明输入数据,输入的就不准确。
而如果改成%lf
则可以直接输入浮点数就行了,而且无其他格式说明上的要求。
以上仅供参考,
希望对题主有所帮助!