求解二元一次方程,打印出的结果都是”无解“

问题遇到的现象和发生背景 求解二元一次方程,打印出的结果都是”无解“
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<math.h>
#define _CRT_SECURE_NO_WARNINGS

int main()
{
    float a,b,c;
    scanf("%f%f%f", &a, &b, &c);
    float disc = b * b - 4 * a * c;
    if(disc>0)
    {
        float x1 = (-b + sqrt(disc)) / (2 * a);
        float x2 = (-b - sqrt(disc)) / (2 * a);
        printf("方程有两个解\nx1=%f\nx2=%f", x1, x2);
    }
    else if(disc=0)
    {
        float x = (-b + sqrt(disc)) / (2 * a);
        printf("方程有两个相同的跟\nx=%f\n", x);
    }
    else
    {
        printf("无解");
    }
    return 0;
}

运行结果及报错内容

img

我想要达到的结果 当判别式大于零就输出两个根,小于零就无解,等于零就一个根

不是等于0!!!!这是赋值,你得==才行

应该是disc==0 而不是disc=0 一个是关系表达式 一个是赋值表达式

你少写了个等号哟
else if(disc == 0)

你这句话写错了
else if(disc=0)
改为
else if(disc==0)就行了