Floating Point Issues - Programming

Q1:

What will be the output of the program?
#include<stdio.h>
#include<math.h>
int main()
{
    float n=1.54;
    printf('%f, %f\n', ceil(n), floor(n));
    return 0;
}

A 2.000000, 1.000000

B 1.500000, 1.500000

C 1.550000, 2.000000

D 1.000000, 2.000000

ANS:A - 2.000000, 1.000000

ceil(x) round up the given value. It finds the smallest integer not < x.
floor(x) round down the given value. It finds the smallest integer not > x.
printf('%f, %f\n', ceil(n), floor(n)); In this line ceil(1.54) round up the 1.54 to 2 and floor(1.54) round down the 1.54 to 1. In the printf('%f, %f\n', ceil(n), floor(n)); statement, the format specifier '%f %f' tells output to be float value. Hence it prints 2.000000 and 1.000000.