scanf(“%f”,&a);出错了??
scanf(“%f”,&a);
当我输入10.1时出错了,说runtime error
但是如果改成 %5.5f 就没关系,这是怎么回事,%f 默认是几位小数几位整数啊? 展开
错误原因: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中要求给出变量地址,如给出变量名则会出错
6、在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。
7、C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
9、在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。
错误原因:指定数据格式时,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中需要变量地址,如果给定变量名,将发生错误。
#include<stdio.h>
main()
{
float x = 0;
scanf("%f", &x);
printf("%f\n",x);
getchar();
}
Outcome:
10.1
10.100000
printf(“%5.5f”,a); 这样你的结果就是精度为5 了