谁能帮我用C语言编写一个解方程的函数啊

用C语言编写,方程为a*exp(x)-b*x-c=0,能不能把代码给我写出来呢?谢谢啦。上式中a、b、c为常数。谢谢啦~~
我想问一下,这是什么算法啊,原理是什么?谢谢啦

第1个回答  2008-06-30
#include <stdio.h>
#include <math.h>
#define a 1.5
#define b 2.5
#define c 4.0
#define MAX 100
#define EP 1e-6

double f(double x)
{
return a*exp(x)-b*x-c;
}
void solve(double m,double n)
{
double x;
while(f(m)*f(n)<0)
{
x=(m+n)/2;
if(f(x)*f(n)<0) m=x;
else n=x;
if(fabs(f(x))<EP) {printf("x=%lf\n",x);break;}
}
}
int main()
{
if(b/a>0) {solve(-MAX,log(b/a));solve(log(b/a),MAX);}
else solve(-MAX,MAX);
return 0;
}本回答被提问者采纳

谁能帮我用C语言编写一个解方程的函数啊
include <stdio.h> include <math.h> define a 1.5 define b 2.5 define c 4.0 define MAX 100 define EP 1e-6 double f(double x){ return a*exp(x)-b*x-c;} void solve(double m,double n){ double x;while(f(m)*f(n)<0){ x=(m+n)\/2;if(f(x)*f(n)<0) m=x...

C语言解方程
y=%d,z=%d\\n",x,y,z); count++; } } } } printf("2x+5y+10z=200解的个数为:%d\\n",count); return 0;}

C语言编程:求一元二次方程的解,要求如下图,咋编?
int main(int argc,char *argv[]){ double a,b,c,t;printf("Enter a, b, c(R:)...\\n");if(scanf("%lf%lf%lf",&a,&b,&c)==3 && a)(t=b*b-4*a*c)>0 ? fp(a,b,t) : t<0 ? fn(a,b,t) : f0(a,b);else printf("Input error, exit...\\n");return 0;...

这个方程在C语言中怎样编写,求这个方程的程序代码?
double x=5,y;y=5*x*x+4*x-6;printf("%lf\\n",y);return 0;}

C语言解方程
include <stdio.h> void main(){ int i;float x0, x=0.1,h=0.1,s1=0,s2=0;do{ s1=(x-8)*(100-10*(x-10));x=x+h;if(s2<s1){ x0=x-h;s2=s1;} }while(x<25);printf("s=%f,x=%5.1f\\n",s2,x0);}

c语言解一元二次方程
c语言解一元二次方程如下:c语言一元二次方程编程是#include <iostream> 。#include <cmath>。using namespace std。int main()。{float a,b,c;float x1,x2; cin>a>>b>>c;float dlt=b*b-4*a*c;if(dlt>=0){x1=-b\/2\/a+sqrt(dlt)。\/2\/ax2=-b\/2\/a-sqrt(dlt)\/2\/a。形如x...

如何用c语言编程解一元七次方程组?
如下:include<stdio.h> include<math.h> disc=b*b-4*a*c;p=-b\/(2.0*a);q=sqrt(disc)\/(2.0*a);x1=p+q;x2=p-q;printf("x1=%7.2f\\nx2=%7.2f\\n",x1,x2);return 0。

C语言 写一个解方程的程序
如果答案是整数,那就扫描法,就是挨个带入x的值计算,当然你也可以根据你带入的x算出y的值然后通过算法很快定位x的大概值,在附近扫描,效率更高。如果x是任意值可以是小数,那就用扫描十分法,就是你通过跟上面差不多的方法计算出假如x=5和x=6带入后y出现正负变化了或者y本来下降趋势,后来上升...

求C语言解方程程序
int main(void){ double M = 935.78, Ar = 500*500*500*PI, fc = 19.1;double alpha;for(alpha = 0.2; alpha <= 0.3; alpha+=0.001){ if(M\/Ar - 2.0\/3*fc*pow(sin(PI*alpha), 3)\/PI - alpha*fc*(1-sin(2*PI*alpha)\/(2*PI*alpha))\/(1.25-3*alpha) * (sin...

C语言解方程
include <stdio.h> int main(){ int i,j,k;int sum=0;for(i=0;i<=100;i++)for(j=0;j<=100;j++)for(k=0;k<=100;k++){ if(2*i+5*j+10*k==200){ printf("x=%d y=%d z=%d\\n",i,j,k);sum++;} } printf("解的总数为 : %d\\n",sum);return 0;} ...

相似回答