| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 314 人关注过本帖
标题:一元二次方程求解的问题
只看楼主 加入收藏
msl12
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2015-2-6
结帖率:25%
收藏
 问题点数:0 回复次数:2 
一元二次方程求解的问题
程序代码:
# include <stdio.h>
# include <math.h>

int main(void)
{
    double a, b, c, disc, x1, x2;
    printf("求解一元二次方程\n");
    printf("请输入a b c的值:\n");
    scanf("%lf %lf %lf", &a, &b, &c);
    disc = sqrt(b*b - 4*a*c);
    if (a<=0)//这里合适么?
        printf("这不是一元二次方程\n");
    else
    {
        if (sqrt<0)//这里合适么?
            printf("方程无实根\n");
        else if (sqrt>0)//同上
        {
            x1 = ((-b)+disc)/(2*a);
            x2 = ((-b)-disc)/(2*a);
            printf("方程两实根分别为:\nx1=%.2lf, x2=%.2lf\n", x1, x2);
        }
        else
        {
            x1 = ((-b)+disc)/(2*a);
            x2 = x1;
            printf("方程有一个实根:\nx1=x2=%.2lf\n", x1);
        }
    }

    return 0;
}
2015-02-28 11:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
double delta = b*b-4*a*c;
if( a == 0 )
    非二次方程
else if( delta == 0 )
    两根相同
else if( delta > 0 )
    两实根
else // delta < 0
    两虚根
2015-02-28 12:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
disc = sqrt(b*b - 4*a*c);
--- C标准如是说 A domain error occurs if the argument is less than zero.

if (sqrt<0)
--- 笔误了吧,应该是 if (disc<0)

2015-02-28 12:24
快速回复:一元二次方程求解的问题
数据加载中...
 
   



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

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