C题解

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main() {
    float m = 0;
    while(scanf("%f", &m) != -1) {
        int singal = 1;
        if(m < 0) {
            singal = -1;
        }
        float n = fabs(m);
        for(float i = 0.1; ; i += 0.01) {
            float tmp = i * i * i;
            if(tmp >= n) {
                //为了实现两位小数的四舍五入,2.15->2.2, 0.66->0.7
                float t = ceilf(i * 100) / 100 * singal;
                float tt = floorf(t * 10) / 10;
                if ((t - tt) >= 0.05) {
                    t += 0.05;
                }
                printf("%.1f\n", t);
                break;
            }
        }
    }
}