发布网友
共5个回答
热心网友
scanf后面的%f格式,必须与输入格式相一致
按您的输入,中间用逗号,与scanf中%f之间格式不符,结果只接收了第1个变量,后面没接收,因而是零(有的编译器会是随机数),正确写法:
(1)如果:scanf中%f之间用空格,即:scanf("%f %f %f",&a,&b,&c);应该输入1 2 3(中间有空格)
(2)如果:scanf中%f之间用逗号,即:scanf("%f,%f,%f",&a,&b,&c);应该输入1,2,3(中间有,)
但不能没有分隔符号,您的写法,要求3个数连续输入,这样:人都没办法分辨,机器更没法分了,如:你输入12.345.67.,是啥意思?
12.34 5.6 7.?
12.3 45.6 7.?
热心网友
87和6543.000000;看到scanf()函数中的"%2d"没有?在执行该函数时系统只读入用户输入的前两个数字并把其赋给a,当然在你输入876543.0时a=87,然后把剩下的数值赋给b;然后输出a和b分别为87,6543.000000(float型默认输出小数点后6位有效数字)。
热心网友
a=87
b=6543.0000
因为第一个百分位宽是2位所把87赋给a
后面6543.0是浮点数赋给b
热心网友
scanf中%f之间没有空格,导致输入数据,发生偏差,建议在%f之间用空格,然后用空格隔开输入数据。追问这个问题我知道,但是不知道为什么后面会是两个0
热心网友
你输入的 是什么
追答: 输入 1 2 3 试试看追问1,2,3