搜索
查看: 787|回复: 2
打印 上一主题 下一主题

编译失败,求指教

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-29 14:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
        float a,b,c,d;
        printf("请输入一元二次方程的系数a,b,c:\n");
        scanf("%f%f%f",&a,&b,&c);
        d=b*b-4*a*c;

        if(d<0)
        {
                printf("该方程无解\n");
        }

        else if(d>0)
        {
                printf("该方程只有一个解x=%f\n",-b/(2*a));
        }

        else
        {
                printf("x1=%f\n",(-b+sprt(d))/(2*a));
                printf("x2=%f\n",(-b-sprt(d))/(2*a));
        }
    printf("%f",d);
        system("pause");
        return 0;
}


最佳答案

查看完整内容

编译不了的原因是你把sqrt写成了sprt d > 0的时候是两个实根, d == 0的时候是一个实根(或者说两实根相等) 另外这种地方明显要用double,你基本上是用不到float的
沙发
发表于 2014-3-29 14:10:57 | 只看该作者
编译不了的原因是你把sqrt写成了sprt

d > 0的时候是两个实根, d == 0的时候是一个实根(或者说两实根相等)
另外这种地方明显要用double,你基本上是用不到float的

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.         double a,b,c,d;
  6.         printf("请输入一元二次方程的系数a,b,c:\n");
  7.         scanf("%lf%lf%lf",&a,&b,&c);
  8.         d=b*b-4*a*c;

  9.         if(d<0)
  10.         {
  11.                 printf("该方程无解\n");
  12.         }

  13.         else if(d==0)
  14.         {
  15.                 printf("该方程只有一个解x=%f\n",-b/(2*a));
  16.         }

  17.         else
  18.         {
  19.                 printf("x1=%f\n",(-b+sqrt(d))/(2*a));
  20.                 printf("x2=%f\n",(-b-sqrt(d))/(2*a));
  21.         }
  22.         printf("%f",d);
  23.         system("pause");
  24.         return 0;
  25. }
复制代码
板凳
 楼主| 发表于 2014-3-29 19:11:14 | 只看该作者
多谢大神指教
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表