is there anyone who can give me a vital and simple explanation im trying to understand this program below its about the printf in c programming here is the code......

```
#include <stdio.h>
  int main()
   {
    int a,b;
    float c;
      a = 1;
      b = 2;
      c = 3.;

    printf("%d %d %f\n",a ,b , c);
    printf("%d %f %f\n",a ,b , c);
    printf("%f %d %f\n",a ,b , c);
    printf("%d %d %d\n",a ,b , c);
    printf("%f %d %d\n",a ,b , c);
   return o;

    }

```

the output is 

```
1  2  3.000000
1  0.000000  0.000000
0.000000  0  0.000000
1  2  0
0.000000  0  1074266112

```

im perfectly clear about the first printf's output
but why does the second printf outputs
`1 0.000000 0.000000` 

instead of `1 0.000000 3.000000`

third printf `0.000000 0 3.000000`

fifth printf `0.000000 2 0.000000`