%2d决定了a只能接受两位数字,所以a的值为87你的%2d%f是连在一起的,那么按照默认约定,输入的数据也应该是连续的,中间没有空格。否则会将空格作为输入的结束符看待。6和5中间有一个空格,所以输入到6就结束了,后面的543.0被无视。则将6赋值给b,打印b的值即为6.00000
scanf("%2d%f",&a,&b);改为scanf("%2d,%f",&a,&b); 然后 876,543.0 数据输入的格式要和scanf函数的格式一样,两个数据之间加空格或逗号,或者其他的字符