我是大一的刚入门想请教一下我的代码有的错误谢谢
#include<cmath>
#include<cstdio>

using namespace std;
int main()
   {
    double a,b,c,x1,x2,temp;
    scanf("%lf %lf %lf","a, b, c");

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

    x2 = (-b - sqrt(b*b-4*a*c))/(2*a);
    printf("x1=%.5lf,x2=%.5f\n",x1,x2);
    temp=b*b-4*a*c;
    if(temp=0)
    {
    printf("x1=x2=%.5lf\n",x1,x2);
    }
    else if(temp>0)
    {
     printf("x1=%.5lf,x2=%.5lf",x1,x2);
    }
     else 
     {
     printf("x1=-b/(2*a)+sqrt(4*a*c-b*b)/(2*a),x2=-b/(2*a)-sqrt(4*a*c-b*b)/(2*a)",);            
     }
     return 0;
     }





4个回答

首先:你写的这句:scanf("%1f %1f %1f","a,b,c")应该改为scanf("%1f %1f %1f",&a,&b,&c)
其次:你的结构有问题,应该先判断b*b-4*a*c *大于0,而且根据不同的情况做不同的处理

if(temp=0)这里作为条件判断括号里面不能用temp=0应该改为temp==0,一个等号是赋值两个等号才是判断

大一刚入门,最好先学习下最基础的知识,再开始鲁代码

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问