| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1207 人关注过本帖
标题:我前前后后检查了好几次没有发现问题啊,1个警报..
只看楼主 加入收藏
C初见
Rank: 2
来 自:四川
等 级:论坛游民
帖 子:61
专家分:52
注 册:2017-1-7
结帖率:91.67%
收藏
已结贴  问题点数:16 回复次数:8 
我前前后后检查了好几次没有发现问题啊,1个警报..
#include<stdio.h>
#include<math.h>
int main()
{
    double a,b,c,disc,x1,x2,realpart,imagpart;
    scanf("%lf,%lf,%lf",&a,&b,&c);
    printf("The equation");
    if(fabs(a)<=le-6)
        printf("is not a quadratic\n");
    else
    {
        disc=b*b-4*a*c;
        if(fabs(disc)<=1e-6)
            printf("has two equal roots:%8.4f\n",-b/(2*a));
        else
        
            if(disc>1e-6)
            {
                x1=(-b+sqrt(disc))/(2*a);
                x2=(-b-sqrt(disc))/(2*a);
                printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2);
            }
            else
            {
                realpart=-b/(2*a);
                imagpart=sqrt(-disc)/(2*a);
                printf("has complex roots:\n");
                printf("%8.4f+%8.4fi\n",realpart,imagpart);
                printf("%8.4f-%8.4fi\n",realpart,imagpart);
            }
        

    }
    return 0;
}
搜索更多相关主题的帖子: equation include double 
2017-01-15 18:41
C初见
Rank: 2
来 自:四川
等 级:论坛游民
帖 子:61
专家分:52
注 册:2017-1-7
收藏
得分:0 
2017-01-15 19:07
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:10 
1e-6不是le-6。。。

Code is my life.
2017-01-15 19:16
C初见
Rank: 2
来 自:四川
等 级:论坛游民
帖 子:61
专家分:52
注 册:2017-1-7
收藏
得分:0 
错误是1e-6没有定义,但是这是指数形式的常量啊?还要怎么定义?
2017-01-15 19:22
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:6 
结合3楼的说法~写错变量正常来说应该编译过不了才对~应该不是警告而是错误才对~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-15 19:23
C初见
Rank: 2
来 自:四川
等 级:论坛游民
帖 子:61
专家分:52
注 册:2017-1-7
收藏
得分:0 
回复 3楼 bjut_Allen
居然输入的是l,太像了,怪不得看不到,我把它当1了
2017-01-15 19:24
C初见
Rank: 2
来 自:四川
等 级:论坛游民
帖 子:61
专家分:52
注 册:2017-1-7
收藏
得分:0 
回复 5楼 九转星河
是一个错误..
2017-01-15 19:24
a1294549175
Rank: 1
等 级:新手上路
帖 子:17
专家分:8
注 册:2017-1-12
收藏
得分:0 
if(fabs(disc)<=1e-6)
            printf("has two equal roots:%8.4f\n",-b/(2*a));

题主,在后边输出的字符串里,:%8.4f指的是单精度浮点型,-b/(2*a)是double型的,编译器认为可能会丢数据,所以会有警告。后边也有这样的。

希望能帮到你吧...
2017-01-15 22:42
xiajingran
Rank: 2
等 级:论坛游民
帖 子:32
专家分:28
注 册:2016-12-14
收藏
得分:0 

小程序大智慧
2017-01-19 15:47
快速回复:我前前后后检查了好几次没有发现问题啊,1个警报..
数据加载中...
 
   



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

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