| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1285 人关注过本帖
标题:一元二次方程代码问题
只看楼主 加入收藏
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
结帖率:86.96%
收藏
已结贴  问题点数:20 回复次数:15 
一元二次方程代码问题
以下是本人的一段代码,不知为何,运行后输入数字后没反应,请指教

#include<stdio.h>
#include<math.h>
double a,b,c,d,x1,x2,p;
void dayu (double a,double b)
{
    x1=(-b+sqrt(d))/(2*a);
    x2=(-b-sqrt(d))/(2*a);
    printf("x1=%f\t\tx2=%f\n",x1,x2);
}
                 
void deng(double a,double b)
{
    x1=x2=(-b)/(2*a);
    printf("x1=%f\t\tx2=%f\n",x1,x2);
}

void budeng()
{
    printf("无实根");
}

void main()
{
    scanf("%lf,%lf,%lf",&a,&b,&c);
    d=b*b-4*a*c;
    if (d>0)
    dayu (a,b);
    if (d=0)
    deng (a,b);
    if (d<0)
     budeng();
}
搜索更多相关主题的帖子: include double 
2011-08-03 16:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你输入了什么数字无反应?除了d=0开始有问题之外,至少会碰到d>0的情况有动作呀。

授人以渔,不授人以鱼。
2011-08-03 16:28
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:20 
程序代码:
#include<stdio.h>
#include<math.h>
double a,b,c,d,x1,x2,p;
void dayu (double a,double b)
{
    x1=(-b+sqrt(d))/(2*a);
    x2=(-b-sqrt(d))/(2*a);
    printf("x1=%f\t\tx2=%f\n",x1,x2);
}
                
void deng(double a,double b)
{
    x1=x2=(-b)/(2*a);
    printf("x1=%f\t\tx2=%f\n",x1,x2);
}

void budeng()
{
    printf("无实根");
}

void main()
{
    scanf("%lf,%lf,%lf",&a,&b,&c);
    d=b*b-4*a*c;
    if (d>0)
    dayu (a,b);
    else if (d==0)
    deng (a,b);
    else
     budeng();
}
注意你的if (d=0)应该是if(0 == d)以后只要是判断相等就这样写 还有输入的时候用逗号隔开 还有就是三个if的逻辑错误 已经帮你改了

[ 本帖最后由 laoyang103 于 2011-8-3 16:32 编辑 ]

                                         
===========深入<----------------->浅出============
2011-08-03 16:30
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
楼主有想法 !

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-03 16:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
对double型数据d,检测d==0恐怕没那么容易。这个程序可修改的地方很多,不过先通过了再说。

授人以渔,不授人以鱼。
2011-08-03 16:37
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
#define EPSINON 0.0000000000000001
else if (d >= -EPSINON   &&   d <= EPSINON)

楼上说的没错应该是这样的  不过你写着玩就算啦

                                         
===========深入<----------------->浅出============
2011-08-03 16:49
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
printf("x1=%f\t\tx2=%f\n",x1,x2);


新手求解 \t\t起什么做用  跟printf("x1 = %f,x2 = %f\n", x1, x2);有什么区别

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-03 16:59
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 7楼 风生钧起
自己试一下不就知道了
2011-08-03 17:01
Tothend
Rank: 1
等 级:新手上路
帖 子:9
专家分:4
注 册:2011-8-3
收藏
得分:0 
scanf("%lf,%lf,%lf",&a,&b,&c);
注意该输入数据语句中的","
输入a, b, c的值时需要加逗号
我刚才试了下都行。
2011-08-03 17:07
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
试了 一个\t  空格4下

但书写看上去不是很好  你一般也是这样的?

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-03 17:08
快速回复:一元二次方程代码问题
数据加载中...
 
   



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

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