#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c,k;
float x1,x2;
printf("please input a,b,c");
scanf("%d%d%d",&a,&b,&c);
k=sqrt(b*b-4*a*c);
x1=((-2)*b+k)/(4*a);
x2=((-2)*b-k)/(4*a);
if(k<0)
printf("该方程无解\n");
else if(k>0)
printf("该方程有两根:x1=%.2f x2=%.2f",x1,x2);
else
printf("该方程有两个相等的根:x1=x2=%f",x1);
printf("\n");
return 0;
}
公式错了,x1=(-b+k)/2*a,x2=(-b-k)/2*a,还有那个k定义为int了,那么无论k算出来是不是整数,最后都会取整,定义为float试试