求解scanf读取5.2f时出的问题

#include<stdio.h> #include<windows.h> void main() { float a,b,c; scanf("%5.2f%5.2f%5.2f",&a,&b,&c); if(a>b&&a>c) printf("max=%5.2f\n",a); else if (b>a&&b>c) printf("max=%5.2f\n",b); else printf("max=%5.2f\n",c); system("pause"); }以上是我的代码,
123 222.22 11.33
max=-107374176.00
上面是我输入的内容和输出的结果max=-107374176.00
但是如果我把上面的程序改成下面的话

#include<stdio.h> #include<windows.h> void main() { float a,b,c; scanf("%f%f%f",&a,&b,&c); if(a>b&&a>c) printf("max=%5.2f\n",a); else if (b>a&&b>c) printf("max=%5.2f\n",b); else printf("max=%5.2f\n",c); system("pause"); }生成的结果就对了
123 222.22 11.33
max=222.22
请问为什么会出现这个现象?max=222.22