C语言中输入输出问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 00:44:49
#include<stdio.h>
main()
{
float a,b,c;
scanf("%f,%f",&a,&b);
c=a+b;
printf("%f+%f=%f",a,b,c);
}

scanf中%f中间如果用空格。scanf("%f %f",&a,&b)则没有问题。
但是为什么不能用逗号呢。用逗号则b显示的是0000000.请问这是为什么啊。
我输入1.1,2.2
显示的是1.10000+0.00000=1.10000

%f%f如果连在一起输入
系统默认的是 换行分别写入两个值。
但是你加了“,”以后就成为将同一行输入的×××,××× 两个数字输入进去
也就是说 你在输入的时候要在两个数字之间加入“,”
这样不用换行,在一行就可以输入两个值。
你再实验下~!
但是对于你的客户来说,他们是不知道输入两个数字的时候中间要加“,”的
所以建议你在scanf前加上printf(“Input two numbers with , ~!"");
不可以再问我吧
不明白+Q 258115264 说

这跟编释器有关。一般在VC++命令行窗口下,判断输入两个数用空格或TAB键。

这是因为scanf的格式化输入的第二个%f没有匹配到合适的字符串。
实际上按你这种情况,标准的做法是 scanf("%f%f",&a,&b);,也就是2个%f挨在一起。否则你的b就不会被成功赋值。
当你输入 scanf("%f %f",&a,&b);(就是说中间留空格)时,如果你只按一次回车就输入2个数,那么你2个数之间用空格间隔也不会成问题,不过也不推荐这种做法,因为如果你采用每次输入1个数,然后回车的方式来输入时,b也得不到正确的值。。

scanf有几个小地方是需要注意的,多试验,多摸索你就会熟练的了。

这是你输入数据是的问题 如果你用空格 输入数据的时候就必须用空格
%f %f 就是 1 2
%f,%f就是 1,2