为什么这个程序会堆栈溢出??help!!
pascal吧
全部回复
仅看楼主
level 4
伪amd死忠 楼主
program cjwfcdg;
var
m,n,p:longint;
a,b:real;
function fx(m,n,p:longint;var x1:real):real;
begin
fx:=exp(x1*ln(m))+exp(x1*ln(n))-exp(x1*ln(p));
end;
procedure gx(m,n,p:longint;var x2,x3:real);
var
min:real;
begin
min:=(x2+x3)/2;
if exp(min*ln(m))+exp(min*ln(n))-exp(min*ln(p))=0
then
begin
write(min:0:10);
halt;
end
else
begin
if fx(m,n,p,x2)*fx(m,n,p,min)<0 then
begin
gx(m,n,p,x2,min);
end
else
begin
gx(m,n,p,min,x3);
end;
end;
end;
begin
readln(m,n,p,a,b);
if fx(m,n,p,a)=0 then
begin
write(a:0:10);
halt;
end;
if fx(m,n,p,b)=0 then
begin
write(b:0:10);
halt;
end;
if fx(m,n,p,a)*fx(m,n,p,b)>0 then write('NO');
if fx(m,n,p,a)*fx(m,n,p,b)<0 then gx(m,n,p,a,b);
end.
题目:输入m,n,p,a,b,求方程f(x)=mx+nx-px=0在[a,b]内的根。m,n,p,a,b均为整数,且a<b;m,n,p都大于等于1。如果有根,则输出,精确到小数点后10位;如果无方程根,则输出“NO”。
2014年01月02日 12点01分 1
level 7
上班--梦醒时分下班--月满西楼加餐-千年等一回公休--等你等到我心痛升职--我等得花儿也谢了加薪--想你想到梦里头罚款--一千个伤心的理由
2014年01月07日 19点01分 2
1