月亮偷着哭... 2021-10-15 15:43 采纳率: 84.6%
浏览 488

c语言求一元二次方程的根

img


运行结果总是当a为0的语句,不懂错在哪里?

#include<stdio.h>
#include<math.h>
int main()
{
    float a,b,c,x1,x2,qggs1,qggs2,delta,real,image;
    printf("输入方程系数的值:");
    scanf("%.2f%.2f%.2f",&a,&b,&c);
    qggs1=-b/(2.0*a);
    qggs2=sqrt(delta)/(2.0*a);
    delta=b*b-4*a*c;
    if(a==0)
    
     printf("不是一元二次方程,a不能等于0");
    
    else if (delta>=0)
    {
     x1=qggs1+qggs2;
     x2=qggs1-qggs2;
     printf("x1=.2%f\nx2=.2%f\n",x1,x2);
    }
    
    else
    {
     real=qggs1;
     image=qggs2;
     printf("%.2f+%.2fi\n",real,image);
     printf("%.2f-%.2fi\n",real,image);
    }
    return 0;
 } 


  • 写回答

1条回答 默认 最新

  • a1278668564 2021-10-15 16:01
    关注
     printf("x1=.2%f\nx2=.2%f\n",x1,x2);把.2放在%后面,
    

    scanf("%.2f%.2f%.2f",&a,&b,&c);把里面的.2去掉,输入直接加类型就可以了
    把float改成double;
    还有就是如果是delta是负数,开根是算不出来,所以else里面要加上
    delta=4ac-bb;
    qggs2=sqrt(delta)/(2.0
    a);

    评论

报告相同问题?

问题事件

  • 创建了问题 10月15日

悬赏问题

  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错