思路

  1. 获得输入数据
  2. 根据题意,采用二分法穷举结果
  3. 确定左右边界为-20~20
  4. 将精度控制在3位小数,输出时保留1位
  5. 当中间值mid的三次方小于实际值val,则将左边界值left更新为mid
  6. 当循环到精度满足条件时,输出左边界值left

Answer

#include<stdio.h>

int main() {
    double val;
    scanf("%lf", &val); //得到输入数据

    double l = -20;
    double r = 20;
    while (val - l * l * l > 0.001) {
        double mid = (l + r) / 2;
        if (mid * mid * mid < val) {
            l = mid;
        } else {
            r = mid;
        }
    }
    printf("%.1f", l);
    return 0;
}