The output is correct. The C compiler will not convert the variable type just by specifying the format specifier. In this case, you need to manually convert by placing the type in parentheses () in front of the result.
In your example, you need to use (float)n/2 to get 6.50.
Here is the modified code:
#include <stdio.h>
int main() {
int n = 13;
// Print variables
printf("%d\n", n/2);
printf("%.2f\n", (float)n/2);
return 0;
}