| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2684 人关注过本帖
标题:[求助]关于函数求根的问题
取消只看楼主 加入收藏
tomddr
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-6
收藏
 问题点数:0 回复次数:1 
[求助]关于函数求根的问题
题目如下:
求方程ax+bx+c=0的根,用3个函数分别求当b-4ac大于0、等于0和小于0是的根,并输出结果。从主函数输入a、b、c的值。

以下是我的程序:

#include<math.h>
float disc,x1,x2,p,q;
float rootzero(float a,float b) /*定义一个函数,用来求disc=0时方程的根*/
{
x1=x2=-b/(2*a);
}
float rootlarge(float a,float b) /*定义一个函数,用来求disc>0时方程的根*/
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
float rootsmall(float a,float b) /*定义一个函数,用来求disc<0时方程的根*/
{
p=-b/(2*a);
q=sqrt(disc)/(2*a);
}
main()
{
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
disc=b*b+4*a*c;
printf("root:\n"); /*到这里都可以输出*/
if(disc<0)
{rootsmall(a,b);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else if(disc>0)
{rootlarge(a,b);
printf("x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",p,q,p,q);
}
else rootzero(a,b);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}

我的程序运行后,输出到"root:",然后就显示"sqrt:DOMAIN error",然后换一行才显示x1,x2;
而却结果也不正确,我想了一下午也不明白到底那里错了.
各位朋友帮我看看程序那里出错了!先谢谢了!
搜索更多相关主题的帖子: float 函数 disc 方程 定义 
2006-03-06 20:29
tomddr
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-6
收藏
得分:0 
谢谢各位的帮助.
二楼的朋友,我的被调函数是没返回值,但x1,x2,p,q是全局变量,可供主函数使用呀!不过其他的地方的确考虑不够,正向4,5楼所说的,恩,想一下再说!
2006-03-07 12:13
快速回复:[求助]关于函数求根的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026685 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved