解题思路:
利用二分法不断缩小含根区间,根据函数值确定新的区间范围,直到满足精度要求,最后四舍五入得到结果。
注意事项:
选择合适的循环终止条件,确保计算准确性。
参考代码:
#include #include double f(double x) { return pow(x, 5) - 15 * pow(x, 4) + 85 * pow(x, 3) - 225 * pow(x, 2) + 274 * x - 121; } int main() { double a = 1.5; double b = 2.4; double c; while ((b - a) > 0.0000005) { c = (a + b) / 2; if (f(c) == 0.0) { break; } else if (f(c) * f(a) < 0) { b = c; } else { a = c; } } double result = (a + b) / 2; // 四舍五入到小数点后 6 位 result = round(result * 1000000.0) / 1000000.0; printf("%.6f\n", result); return 0; }
0.0分
3 人评分
GC的苦恼 (C语言代码)浏览:672 |
大神老白 (C语言代码)浏览:637 |
模拟计算器 (C语言代码)浏览:2366 |
简单的a+b (C语言代码)浏览:444 |
数列有序 (C语言代码)浏览:974 |
回文数(一) (C语言代码)浏览:1170 |
C语言训练-最大数问题 (C语言代码)浏览:668 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:584 |
自编的贪吃蛇小游戏,代码装上easyx图形库就能运行。浏览:959 |
A+B for Input-Output Practice (II) (C++代码)浏览:656 |