c2100

你上面的x2的赋值明显有问题:

x2=(*b-sqrt( delta))

*b代表一个指针变量,指向变量b所存储的地址的值,但是你的b很明显是一个整形变量,肯定出错

以下为修改后:

#include <math.h>

#include<stdio.h>

void main()

{

int a = 8;

int b = 7;

int c = 9;

double delta;

double x1;

double x2;

delta = b*b - 4*a*c;

if ( delta > 0)

{

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

x2 = (-b-sqrt( delta)/(2*a));

printf("有两解,x1=%f,x2=%f\n",x1,x2);

}else if(delta == 0)

{

x1=(-b)/(2*a);

x2=x1;

printf ("有两个相同的解,x1=x2=%f\n",x1);

}else if(delta<0)

{printf ("无解\n");}

}