问题及代码:
/*
Copyright(c)2018,CSDN学院行者-
All rights reserved.
文件名称:main.c
作者:乔帅
完成日期:2018年3月14日
版本号:v1.0
问题描述:二分法解方程
输入描述:一个区间
程序输出:利用二分法求出该函数的值
*/
#include<stdio.h>
double f(double); //函数f(x)
int main()
{
double x , y , z ;
do{
printf("请输入函数f(x)上的一个范围x0、x1:");
scanf("%lf %lf",&x,&y);
}while(f(x)*f(y)>=0); //判断是否异号,在该区间上是否有根
printf("在区间[%.2lf,%.2lf]上,方程将有一个根\n",x,y);
do{
z = (x+y)/2;
if(f(x)*f(y)<0){
y = z;
}else{
x = z;
}
}while(f(z)>1e-5||f(z)>1e-5);
printf("方程的根为:%.2lf",z);
return 0;
}
double f(double x){
int y;
y = (2*x*x*x-5*x*x+3*x-6);
return y;
}
运行结果:
知识点总结:
1.二分法的应用(二分法可以用于大量数据的搜索应用)
学习心得:
积累代码的过程就是你蜕变的过程!!!