当前位置: 代码迷 >> C语言 >> [求助]怎样编写参数数目不确定的程序?
  详细解决方案

[求助]怎样编写参数数目不确定的程序?

热度:130   发布时间:2007-04-25 09:05:49.0
[求助]怎样编写参数数目不确定的程序?

在毕业设计中遇到这样一类问题:要编定一个通用子程序,但参数个数是变化的。举个例子:要求方程ax*x+bx+c=0的实根,参数a、b、c之中的一个或数个(反正数目不定)在不同的场合要求用实参传值给它。我编写的程序如下:

double f(double pc[],double x)
{ return(pc[0]*x*x-pc[1]*x+pc[2]);}

/********** 弦截法求方程实根 **********/

double Root(double x1,double x2,double ec,double (*fx)(),double pc[])
{
double x,y,y1;
y1=(*fx)(pc,x1);
do
{
x=(x1*(*fx)(pc,x2)-x2*(*fx)(pc,x1))/((*fx)(pc,x2)-(*fx)(pc,x1)); /* 求弦与x轴的交点 */
y=(*fx)(pc,x);
if(y*y1>0)
{
y1=y;
x1=x;
}
else x2=x;
}while(fabs(y)>ec);
return(x);
}

main()
{
double x,p[3];
p[0]=1,p[1]=2,p[2]=1;
x=Root(0,10,0.001,f,p);
printf("x=%lf\n",x);
}

但实际上是不正确的。
谁能帮我解决一下问题呢?
搜索更多相关的解决方案: 参数  编写  

----------------解决方案--------------------------------------------------------
函数重载可以解决吧
----------------解决方案--------------------------------------------------------
楼上正解!

如果只用C的话,写几个不同名的函数就好了,那所以可能枚举出来
----------------解决方案--------------------------------------------------------
以下是引用海蓝啸在2007-4-25 10:04:29的发言:
函数重载可以解决吧

能不能说的详细点啊.
我也好象知道
----------------解决方案--------------------------------------------------------
函数重载就是函数名相同,参数不同,一个函数可以重载,实现多用。。。书上有介绍的
----------------解决方案--------------------------------------------------------
C不支持重载。。。C++可以
不过C你可以定义多个函数来解决这个问题

[此贴子已经被作者于2007-4-25 12:04:02编辑过]


----------------解决方案--------------------------------------------------------
我不想用C++。我正在用C做毕业设计,如果要写不同名的函数,那就不是几个的问题了,是重复劳动很多次!C++不是由C编出来的吗?!C++可以,C也应该可以才对啊!不过不知道方法如何。我上边的方法也不知道有什么错误,谁能指正一下啊??
----------------解决方案--------------------------------------------------------
路过。
呵呵!~
----------------解决方案--------------------------------------------------------
http://bbs.bc-cn.net/dispbbs.asp?boardid=5&replyid=90609&id=6725&page=1&skin=0&star=1

5楼
----------------解决方案--------------------------------------------------------
以下是引用crackerwang在2007-4-25 11:47:45的发言:

能不能说的详细点啊.
我也好象知道

c++ 才有~``


----------------解决方案--------------------------------------------------------
  相关解决方案