Okay, I just found out that scanf does not have precision control, and %6.2f is illegal.
%lx means long integer
The * in B is similar to the one in A
The "*" character is used to indicate that the input item has been read in If the corresponding variable is not assigned, the input value is skipped. For example, scanf("%d %*d %d",&a,&b); when the input is: 1 2 3, 1 is assigned to a, 2 is skipped, and 3 is assigned to b.