这个C语言题目哪里错了,明明没有错了,却显示答案错误

#include<math.h>floatdisc,x1,x2,p,q;voidgz(floata,floatb){x1=(-b+sqrt(disc))/(2*a);x2... #include <math.h> float disc,x1,x2,p,q; void gz(float a,float b) { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("x1=%.3f x2=%.3f\n",x1,x2); } void ez(float a,float b) { x1=x2=-b/(2*a); printf("x1=%.3f x2=%.3f\n",x1,x2); } void sz(float a,float b) { p=-b/(2*a); q=sqrt(-disc)/(2*a); printf("x2=%.3f+%.3fi x2=%.3f-%.3fi\n",p,q,p,q); } main() { float a,b,c; scanf("%f%f%f",&a,&b,&c); disc=b*b-4*a*c; if(disc>0) gz(a,b); else if(disc==0) ez(a,b); else sz(a,b); } /************************************************************** Problem: 1028 User: 160920009 Language: C Result: 答案错误 ****************************************************************/ 展开
 我来答
White_MouseYBZ
2016-11-26 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6384万
展开全部
  1. 在main函数的最后一个}前加一句return 0;。

  2. 在所有sqrt前加(float)。

  3. printf("x2=%.3f+%.3fi x2=%.3f-%.3fi\n",p,q,p,q); 改成printf("x1=%.3f+%.3fi x2=%.3f-%.3fi\n",p,q,p,q); 。

其他确实没看出什么问题来……

追问
是的是的,你和第一,二点,改不改都无所谓了,主要是第三点,我改了就对了,谢谢
ilvwhy
2016-11-26 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.7万
采纳率:81%
帮助的人:2684万
展开全部
输出要求x1=..... x2=.....
你的打印输出都是x2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式