求解C语言错误,本来是想做一个一元二次方程,任意输入a,b,c。得到解。这个帮忙看看错误。谢谢了

2025-03-20 21:48:21
推荐回答(3个)
回答1:

#include "stdio.h"
#include
void main()
{
int a,b,c,x,y;
printf("Enter a,b and c:\n");
scanf("%d %d %d", &a, &b, &c);

//二次项系数为0
if(a == 0)
{
x=(-c/b);
y=x;
printf("解为%d\n", y);
}

if (a != 0 && (b*b-4*a*c) > 0)
{
x=(sqrt(b*b-4*a*c)-b)/(2*a);
y=(-sqrt(b*b-4*a*c)-b)/(2*a) ;
printf("两个根为%d和%d\n", x, y);
}

if(a != 0 && (b*b-4*a*c) < 0)
printf("根为共轭复数\n");
}

大哥你c语言基础知识不牢固啊,判断条件是a == 0,不是a = 0,还有你为什么在if判断语句后面加分号呢?

回答2:

#include "stdio.h"
#include 
void main()
{
int a,b,c,x,y;
printf("Enter a,b and c:\n");
scanf("%d,%d, %d",&a,&b,&c);
if (a==0) 
{
    x=(-c/b);
    y=x;
    printf("x=y=%d\n", y);
    return;
}
if (a!=0&&(b*b-4*a*c)>0)
{
    x=(sqrt("b*b-4*a*c")-b)/(2*a) ;
            y=(-sqrt("b*b-4*a*c")-b)/(2*a) ;
    printf("x=%d y=%d\n", x ,y);
    return;    
}    
/* if(a!=0&&(b*b-4*a*c)<0);*/
printf("根为共轭复数");
}

回答3:

if (a=0);

if (a!=0&&(b*b-4*a*c)>0);

请把if语句后边的分号去掉 在试试看