| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 368 人关注过本帖
标题:写的一元二次方程代码编译没有错,运行出错了找不到。求解惑
只看楼主 加入收藏
朔源
Rank: 1
等 级:新手上路
帖 子:105
专家分:4
注 册:2015-9-22
结帖率:90%
收藏
 问题点数:0 回复次数:1 
写的一元二次方程代码编译没有错,运行出错了找不到。求解惑
#include<stdio.h>
#include<conio.h>
#include<math.h>
double x1,x2,disc;
void disc_1(double a,double b,double c)
{
    x1=(-b+sqrt(disc))/(2*a);
    x2=(-b-sqrt(disc))/(2*a);
   
}
double disc_2(double a,double b,double c)
{
    x1=x2=(-b+sqrt(disc))/(2*a);
    return(x1);
   
}
double disc_3(double a,double b,double c)// disc<0  不是没有解吗?这个要怎么写呢?没东西可以写啊?
{
    return(0);
}
int main(void)
{
    double a,b,c,disc;
    printf("please input a,b,c:");
    scanf("%d,%d,%d",&a,&b,&c);
    disc=b*b-4*a*c;
    if(disc==0)
    {
        disc_2(a,b,c);
        printf("the equation have only one root x1=x2=%f",x1);
    }
    else if(disc>0)
    {
        disc_1(a,b,c);
        printf("the equation have two diffrent root x1=%f x2=%f",x1,x2);

    }
    else
    {
       disc_3(a,b,c);
       printf("the equation have no root ");
    }
    getch();
    return (0);
}

编译没有错误,但运行时出错,每次都是 disc_3 这个解。the equation have no root 求个大神看看哪里错了。
还有函数什么时候需要返回值,什么时候不需要?求解惑。。。。。。。。。。。。。。。
搜索更多相关主题的帖子: include please double return 
2015-10-23 18:17
蓝色风暴cl
Rank: 8Rank: 8
来 自:新疆
等 级:蝙蝠侠
威 望:3
帖 子:163
专家分:704
注 册:2015-9-6
收藏
得分:0 
是不是这要写成disc-0>1e-6这种样式?判断大于零,小于零,else等于零?

欢迎大家加好友哦,多找我聊聊吧!
2015-10-23 18:33
快速回复:写的一元二次方程代码编译没有错,运行出错了找不到。求解惑
数据加载中...
 
   



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

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