永发信息网

解一元二次方程,为什么当K<0时,运算结果里面也出现K=0时的结果呢?错误在哪里??

答案:2  悬赏:40  手机版
解决时间 2021-04-07 14:15
解一元二次方程,为什么当K<0时,运算结果里面也出现K=0时的结果呢?错误在哪里??
最佳答案
把if(k<0)改成else试试,因为前面列举了k>0与k==0的情况,只剩下k<0的情况了,修改后的代码如下:
#include 
#include 
int main(void)
{
    float a,b,c,x,y,z;
    double k;
    printf("请输入3个实数:
");
    scanf("%f%f%f",&a,&b,&c);
    k = sqrt(b*b-4*a*c);
    if(a==0)
    {
        x=-b/c;
        printf("此方程1的根为:%f
",x);
    }
    else
    {
        if(k>0)
        { 
            y=(-b+k)/(2*a);
            z=(-b-k)/(2*a);
            printf("此方程2的根为:%f,%f
",y,z);
        }
        if(k==0)
        {
            x=-b/(2*a);
            printf("此方程3的根为:%f
",x);
        }
        else      //此处改成else
            printf("此方程4无解
");
    }
    return 0;
}追问改成else后,我给的a,b,c3个数满足b*b-4*a*c<0,但是运行结果是此方程3的结果,else的结果没有了追答你给个运行截图看看追问

第一张为改成else的结果,第二张是改之前的追答你确定是按我说的修改的吗,请看我的运行截图:

追问这样啊,那我再修改看看,但是能不能解释下为什么会出现最开始的问题?这样以后才能避免,谢谢追答
追问明白了,非常感谢
全部回答
(2x+k)^2=1-k等号左侧为完全平方是非负数故方程的解的个数完全由1-k的正负决定。1-k>0时方程有两个不相等的实数根1-k=0是有两个相等的实数根1-k<0时无实数根也可用判别式确定。追问额,没看懂。原题是求ax^2+bx+c=0 的根,当b^2-4ac>0时有2个解,b^2-4ac=0有1个解,b^2-4ac<0时无解,我把b^2-4ac赋值给K,那么当K<0时应该显示此方程无解,但是我运行程序当K<0时,运行结果同时显示K=0和k<0的结果,我想知道程序哪里错了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
寿康永乐老街中心超市在什么地方啊,我要过去
刚玩mugen,选择人物后弹出了一个错误窗口,
青岛市市南区范围内,哪里有猜灯谜的地方?
钟爱一生新概念婚纱摄影(旌旗路238号钟爱一生
双星江油太白新城店在什么地方啊,我要过去处
刚喂完水可以马上喂奶粉吗
毕业了,给女工作狂老师送什么礼物好?三十多
河源市东源县农村户口超生罚多少钱
天津桥的建桥历史
女儿犯错,咋向爸爸求饶
在校教师在外单位承包工程可以吗
三星小组件
你死我亡是什么意思?
qt-win-opensoure-4.8.5能在windowsxp系统下
芋儿鸡怎么做好吃,芋儿鸡的家常做法
推荐资讯
山西二建集团张家巷住宅小区北门怎么去啊,有
成都哪里有雷神笔记本,机械革命,战神笔记本
政治气氛是什么意思
“风雨兼程”中的“兼”是什么意思?
小米3电池排线断了怎么办??
阅读理解Fourin10Chinesecomplainabouttheg
红豆薏米养生糊可以加酸奶吗
3.15乘以5的意义
网易一卡通怎样充值战网点数
现在哪个软件可以约火包
邮轮上的食物要另外付费吗?
罚闍耶帝的读音和意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?