懂vc++得进啊 看看小弟的这个程序哪有问题啊

来源:百度知道 编辑:UC知道 时间:2024/06/25 04:03:14
#include <stdio.h>
#include <math.h>
void main()
{
int i,n=20000,q=150,e=200;
float m,a,b,h,t1,t2,s1,x,l=0.5,z=1;
printf("请输入积分限a,b:");
scanf("%f,%f",&a,&b);
h=(b-a)/n;
for(s1=0,i=1;i<=n;i++)
{
x=a+(i-1)*h;
t1=(float)(q+(q*x)/l+q*l)/(e*z*pow((1-(1/2)*pow((x/l),(4/3)),(1/3)));t2=(float)(q+(q*(x+h))/l+q*l)/(e*z*pow((1-(1/2)*pow(((x+h)/l),(4/3)),(1/3)));
s1=s1+t1*h;
}
printf("算得积分值:%f.\n",s1);
}
对x积分 式子为题中所示 但是运行结果为function does not take 1 parameters
回复二楼:没有用的...... 谢谢
回复三楼:第二个和第四个pow 我把第二个和第四个去掉的话 是可以运行的 但是题目要一次1/3次方一次4/3次方 相当麻烦的

1/2这会等于0,写成1.0/2
4/3写成4.0/3,其它的也改过来,再试下,呵呵
不是我说的没用,是你还有其它的错误,少了两个括号.
t1=(float)(q+(q*x)/l+q*l)/(e*z*pow((1-(1.0/2)*pow((x/l),(4.0/3))),(1.0/3)));
t2=(float)(q+(q*(x+h))/l+q*l)/(e*z*pow((1-(1.0/2)*pow(((x+h)/l),(4.0/3))),(1.0/3)));
加上括号还是不行得不到正确结果,pow(x,y)要求x大于零,

最后的\n前不应有.号,还有scanf函数两个按原样输人的数间也可能多了,号

是哪个function不获取1个参量?报错是指着哪个?