#include <stdio.h>
#include <math.h>
int main() {
int i;
for (i = 0; i <= 1; ++i) {
float a = (i ? floor : ceil) (10.5);
printf("%d: %f\n", i, a);
}
return 0;
}
Для С++ надо написать:
#include <stdio.h>
#include <cmath>
int main() {
int i;
typedef float (*f)(float);
for (i = 0; i <= 1; ++i) {
float a = (i ? (f)std::floor : (f)std::ceil) (10.5);
printf("%d: %f\n", i, a);
}
return 0;
}
или
#include <stdio.h>
#include <cmath>
int main() {
int i;
for (i = 0; i <= 1; ++i) {
float a = (i ? std::floorl : std::ceill) (10.5);
printf("%d: %f\n", i, a);
}
return 0;
}
Все программы выводят:
0: 11.000000
1: 10.000000