| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 352 人关注过本帖
标题:求助,我按照老是教的 一元二次方程,在运行的时候出现一个错误
只看楼主 加入收藏
浩洁
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-1-23
结帖率:0
收藏
已结贴  问题点数:3 回复次数:3 
求助,我按照老是教的 一元二次方程,在运行的时候出现一个错误
# include <stdio.h>
# include <math.h>

int main(void)
{
    //把三个系数保存在计算机中
    int a=4; //不表示相等,表示赋值
    int b=8;
    int c=9;
    double delta;  //delta存放的是 b*b - 4*b*c
    double x1;   //是这个一元二次方程其中的一个解
    double x2;  //是这个一元二次方程其中的一个解

    delta=b*b - 4*a*c

    if (delta > 0)
    {
    x1 = (-b + sqrt(delta)) / (2*a);
    x2 = (-b - sqrt(delta)) / (2*a);
    printf("该一元二次方程有两个解, x1 = %f, x2 = %f\n", x1, x2);
    }

    else if (delta == 0)
    {
        x1 = (b) / (2*a);
        x2 = x1  //右边赋给左边
        printf("该一元二次方程有一个唯一的解,x1 = x2 = %f\n", x1);
    }

    else
    {
        printf("无解\n")
    }
搜索更多相关主题的帖子: include 计算机 double 
2014-01-23 23:16
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:1 
在运行的时候出现一个错误
------ 编译不能通过,还能“运行的时候”?

另外,公式也错了
x1 = (b) / (2*a)
应该是 x1 = -b/(2.0*a)
(错误有2,第一是符号弄错了;第二是没考虑类型)
2014-01-24 09:21
竹风smile
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2013-12-15
收藏
得分:1 
delta=b*b - 4*a*c(少了个分号)
main()函数少了半个大括号(})
在数据计算过程中,整形数据会自动转换成浮点型,楼上的没必要用(2.0*a
delta 是浮点型,我觉得应该是(if delta>0.0)看你的精确度……


2014-01-27 23:55
w851777025
Rank: 7Rank: 7Rank: 7
来 自:新疆
等 级:黑侠
威 望:2
帖 子:135
专家分:584
注 册:2014-1-19
收藏
得分:1 
表示楼主代码漏洞太多。
2014-01-28 01:00
快速回复:求助,我按照老是教的 一元二次方程,在运行的时候出现一个错误
数据加载中...
 
   



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

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