| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7114 人关注过本帖, 1 人收藏
标题:一元二次方程的根
只看楼主 加入收藏
学会编程
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-3
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:12 
一元二次方程的根
怎么求一元二次方程的根?
搜索更多相关主题的帖子: 一元二次方程 
2010-04-03 15:37
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
收藏
得分:1 
大概就这样了,哪里错了就改改,我没有调试。。。。。。
#include <stdio.h>
#include <math.h>
void main()
{
    int a,b,c,T;
    double x1=0.0,x2=0.0;//方程的两个根
    printf("please input a b and c:");
    scanf("%d,%d,%d",&a,&b,&c);
    T=b*b-4*a*c;
    if(T>=0)//判断是否有根
    {
        if(T>0)//两根不等
        {
            x1=(-b+sqrt(T))/(2*a);
            x2=(-b-sqrt(T))/(2*a);
        }
        else//两根相等
        {
            x1=x2=(-b)/(2*a);
        }
        printf("x1=%f\nx2=%f\n",x1,x2);//输出
    }
    else
        printf("No result!!!!!\n");//无根
}



翱翔天空的雄鹰固然令人羡慕,却容易被禁锢于牢笼之中,只有那夜色中的蝙蝠才是真正自由的飞翔者....
2010-04-03 20:58
cs8728205
Rank: 2
来 自:北京市海淀区
等 级:论坛游民
帖 子:23
专家分:11
注 册:2010-1-29
收藏
得分:1 
先写算法 然后你就知道了

宁静致远

2010-04-04 00:45
新手上路中
Rank: 4
等 级:业余侠客
帖 子:49
专家分:204
注 册:2010-3-26
收藏
得分:1 
恩,二楼的不错.学习中......
2010-04-04 08:13
悠然见南山
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2010-4-3
收藏
得分:1 
二楼的挺好,可以先画流程图
2010-04-04 12:45
human84
Rank: 3Rank: 3
来 自:哈尔滨 / 重庆
等 级:论坛游侠
帖 子:154
专家分:141
注 册:2009-11-1
收藏
得分:1 
不错~不错~学习了
2010-04-04 20:59
zhouchen608
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2010-4-4
收藏
得分:1 
流成图咋画啊???我一新手啊!!!!!!!!!!!!!!!!!!!!!!!!!
2010-04-04 22:24
parkour
Rank: 2
等 级:论坛游民
帖 子:63
专家分:39
注 册:2009-1-3
收藏
得分:1 
应该是这样吧。
#include<stdio.h>
#include<math.h>

int main()
{
    float a, b, c, tmp, x1, x2, real, imag;

    scanf("%f %f %f", &a, &b, &c);
    if(fabs(a) <= 0.000001) //判断a的绝对值是否为零,如果fabs(a)小于0.000001,就认为a等于零。
        printf("不是二次方程\n");               //因为实数在计算和存储时会有一些微小的误差所以不能直接用if(a == 0)判断。
    else
    {
        tmp = b * b - 4 * a * c;
        if(fabs(tmp) <= 0.000001)
            printf("有两个相等的根:%8.4f\n", -b / (2* a));
        else
            if(tmp > 0.000001)
            {
                x1 = (-b + sqrt(tmp)) / (2 * a);
                x2 = (-b - sqrt(tmp)) / (2 * a);
                printf("有两个补相等的根:%8.4f and %8.4f\n", x1, x2);
            }
        else //有两个复数根。
        {
            real = -b / (2 *a);//实部。
            imag = sqrt(-tmp) / (2 * a);//虚部。
            printf("%8.4f + %8.4fi\n", real, imag);
           printf("%8.4f - %8.4fi\n", real, imag);
        }
    }
    return 0;
}
2010-04-05 11:33
右面1
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2009-8-6
收藏
得分:1 
第一个根用求根公式,
求第二个根时用韦达定理好一点,这样可以增大精度
2010-04-05 11:40
woodydongli
Rank: 2
等 级:论坛游民
帖 子:57
专家分:84
注 册:2010-4-4
收藏
得分:1 
就用-b+sqrt(b^2-4ac)2a
2010-04-05 11:47
快速回复:一元二次方程的根
数据加载中...
 
   



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

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