你好,麻烦帮忙看一下scanf(“%f”,&a);哪里出错了?

float a;
scanf(“%f”,&a);
当我输入10.1时出错了,说runtime error
但是如果改成 %5.5f 就没关系,这是怎么回事,%f 默认是几位小数几位整数啊?


 


慕标5832272
浏览 707回答 2
2回答

慕桂英3389331

错误原因:指定数据格式时,scanf不添加逗号。解决的办法为:在scanf中添加一个逗号(“%f%f%f”,&a,&b,&c)。注意:“%f,%f,%f”的格式与“%f%f%f”的格式基本相同,不同之处在于“%f,%f,%f”的格式输入时为“ ,”确保跟上输入的数字,在此处输入的“,”必须为英文。扩展资料:scanf使用注意问题1、在更高版本的Visual Studio编译器中,scanf被认为是不安全和不推荐使用的,应使用scanf_s而不是scanf。2、对于字符串数组或字符串指针变量,由于可以将数组名称转换为数组,并且指针变量名称本身就是地址,因此在使用scanf()函数时,无需添加“&” 在他们前面的运算符。3、可以在格式字符串的“%”格式说明符之间添加一个整数,以指示任何读取操作中的最大位数。4、scanf函数中没有类似于printf的精度控件。5、在scanf中需要变量地址,如果给定变量名,将发生错误。

侃侃尔雅

运行是没问题的scanf()函数中没有精度控制。如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。我试了下你的%5.5f(输入会出错)可能是你的其他代码问题
打开App,查看更多内容
随时随地看视频慕课网APP