你上面的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");}
}