唐僧爱吃唐僧肉
2017-03-18 00:17
采纳率: 31.3%
浏览 2.3k
已采纳

求大神看看这题我程序的问题是什么

7
求一元二次方程的根(3分)
题目内容:
根据下面给出的求根公式,计算并输出一元二次方程的两个实根,要求精确到小数点后4位。程序中所有浮点数的数据类型均为float.

以下为程序运行结果示例
x1=-0.5000
x2=-1.0000

输入格式: 无
输出格式:
      "x1=%.4f\n"
      "x2=%.4f\n"
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
我的程序:#include
#include
int main()
{
double a=2.000000,b=3.000000,c=1.000000,x1,x2;
x1=(-b+sqrt(b*b+4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("x1=%.4f\n");
printf("x2=%.4f\n");
return 0;
}
问题出在哪里,为什么我的结果不对

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 战在春秋 2017-03-18 00:50
    已采纳

    printf("x1=%.4f\n");
    printf("x2=%.4f\n");

    应为:

    printf("x1=%.4f\n",x1);
    printf("x2=%.4f\n",x2);

    点赞 评论
  • kidknight 2017-03-18 00:50

    首先,没按题目要求,这个其实不太影响结果,要求float你非用double;第二个问题致命,printf没有输入参数,应该这样打印printf("x1=%.04f",x1);

    点赞 评论
  • 战在春秋 2017-03-18 01:23

    x1=(-b+sqrt(b*b+4*a*c))/(2*a);

    应为

    x1=(-b+sqrt(b*b-4*a*c))/(2*a);

    点赞 评论
  • abc3065369 2017-03-18 03:18

    int main()
    13 {
    14 double a=2.000000,b=3.000000,c=1.000000,x1,x2;
    15 x1=(-b+sqrt(b*b-4*a*c))/(2*a);
    16 x2=(-b-sqrt(b*b-4*a*c))/(2*a);
    17 printf("x1=%.4f\n",x1);
    18 printf("x2=%.4f\n",x2);
    19 return 0;
    20 }
    [root@localhost math]# ./math
    x1=-0.5000
    x2=-1.0000

    点赞 评论
  • 子敬学编程 2017-03-18 03:22

    确定你的能运行出结果!

    点赞 评论

相关推荐 更多相似问题