m0_72831539 2022-07-18 22:02 采纳率: 100%
浏览 19
已结题

一元二次方程,当输入的系数为负数时输出的结果有误

#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c;
scanf("%f,%f,%f",&a,&b,&c);
float x,x1,x2,t,i,j;
t=bb-4ac;
if(a==0)
{
x=-c/b;
printf("不是二次方程:x=%.2f\n",x);
}
else
{
if(t==0)
{
x=-b/(2
a);
printf("有两个相等实根:x1=x2=%.2f\n",x);
}
if(t>0)
{
x1=(-b+sqrt(t))/(2a);
x2=(-b-sqrt(t))/(2
a);
printf("有两个不等实根:x1=%.2f,x2=%.2f\n",x1,x2);
}
if(t<0)
{
i=-b/(2a);
j=sqrt(fabs(t))/(2
a);
printf("有两个共轭复根:x1=%.2f+%.2fi,x2=%.2f-%.2fi\n",i,j,i,j);
}
}
}

img

img

  • 写回答

1条回答 默认 最新

  • 亖夕 Python领域新星创作者 2022-07-18 23:03
    关注

    改好了

    img

    img

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        float a,b,c;
        scanf("%f,%f,%f",&a,&b,&c);
        float x,x1,x2,t,i,j;
        t= b*b - 4*a*c;
        printf("%f", t);
        if(a==0)
        {
            x=-c/b;
            printf("不是二次方程:x=%.2f\n",x);
        }
        else
        {
            if(t==0)
            {
                x=-b/(2*a);
                printf("有两个相等实根:x1=x2=%.2f\n",x);
            }
            if(t>0)
            {
                x1=(-b+sqrt(t))/(2*a);
                x2=(-b-sqrt(t))/(2*a);
                printf("有两个不等实根:x1=%.2f,x2=%.2f\n",x1,x2);
            }
            if(t<0)
            {
                i=-b/(2*a);
                j=sqrt(fabs(t))/(2*a);
                printf("有两个共轭复根:x1=%.2f+%.2fi,x2=%.2f-%.2fi\n",i,j,i,j);
            }
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月27日
  • 已采纳回答 7月19日
  • 修改了问题 7月18日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址