1个回答
展开全部
第一:第10行到第27行应该用大括号括起来,因为都是a不等于0的时候才做的处理
第二:输入严重错误,你在scanf中,三个%lf用的是逗号分隔,你在实际输入的时候也必须是逗号分隔,不能使用空格,否则a、b、c三个变量的值无法正确获取
第三:求共轭复根处有严重问题,因b*b-4*a*c已是负数,没有平方根,应使用sqrt(4*a*c-b*b)。另外此时x1和x2不能再表示两个根,而应表示实数部分和虚数部分,所以x1=-b/(2*a),x2=sqrt(4*a*c-b*b)/(2*a)即可,输出时使用字符串拼接的方式而不要直接输出x1和x2
当然你如果想图省事,干脆就输出“没有实数根”好了,求复数可能你现阶段比较困难(学了C++之后就简单多了,可以自己定义复数类去做)
第二:输入严重错误,你在scanf中,三个%lf用的是逗号分隔,你在实际输入的时候也必须是逗号分隔,不能使用空格,否则a、b、c三个变量的值无法正确获取
第三:求共轭复根处有严重问题,因b*b-4*a*c已是负数,没有平方根,应使用sqrt(4*a*c-b*b)。另外此时x1和x2不能再表示两个根,而应表示实数部分和虚数部分,所以x1=-b/(2*a),x2=sqrt(4*a*c-b*b)/(2*a)即可,输出时使用字符串拼接的方式而不要直接输出x1和x2
当然你如果想图省事,干脆就输出“没有实数根”好了,求复数可能你现阶段比较困难(学了C++之后就简单多了,可以自己定义复数类去做)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询