C++中子函数如何相互调用?源程序如下:

来源:百度知道 编辑:UC知道 时间:2024/05/15 19:34:48
#include<iostream>
#include<cmath>
using namespace std;
main()
{float x1,x2,x,f1,f2;
float root(float x1, float x2);
float f(float x);
float p(float x1,float x2);
do{
cout<<"请输入两个数:";
cin>>x1>>x2;
f1=f(x1);f2=f(x2);
}while(f1*f2>0);
x=root(x1,x2);
cout<<x;
return 0;}
float root(float x1,float x2)
{float x,y,y1;
y1=f(x1);
do
{x=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
y=f(x);
if(y*y1>0)
{y1=y;x1=x;}
else
x2=x;}
while(fabs(y)>=0.0001);
return (x);}
float f(float x)
{float y;
y=x*x*x-7.8*x*x+18.5*x-11.2;
return (y);}

整理一下,就差不多看出来了:
#include<iostream>
#include<cmath>
using namespace std;
main()
{ float x1,x2,x,f1,f2;
float root(float x1, float x2);
float f(float x);
float p(float x1,float x2);
do
{
cout<<"请输入两个数:";
cin>>x1>>x2;
f1=f(x1);f2=f(x2);
}
while(f1*f2>0);
x=root(x1,x2);
cout<<x;
return 0;
}

float root(float x1,float x2)
{ float x,y,y1;
y1=f(x1);
do
{
x=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
y=f(x);
if(y*y1>0)
{y1=y;x1=x;}
else
x2=x;
}
while(fabs(y)>=0.0001);
return (x);
}
函数p调用函数f;
函数root也调用函数f;
建议把f放在main函数之前定义;
float f(float x)
{
float y;
y=x*x*x-7.8*x*x+18.5*x-11.2;