#include #define ER 0.002 #define ERRVAL 0.001 main() { double r,ratio,a,b; double result,er; for(r = 0.05; r <= 1.50; r += 0.05) { printf("\nr: %1.2lf - "); for(ratio = 1.5; ratio <= 3.0; ratio += 0.5) { a = r; /* a will be too big */ er = ER; do { b = ratio * a; if((result = b * a * a - r * r * r) < -ERRVAL) { er /= 1.5; a += er; } else if(result > ERRVAL) { er *= 2; a -= er; if(a < 0.0) a = -r; } } while(!(result > -ERRVAL && result < ERRVAL)); printf("%1.2lf, %1.2lf %1.2lf ",ratio,a,b); } } }