d别小于零就可以了。
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include <math.h>
#include<stdlib.h>
int flag = 1;
float a, b, c, d, x1, x2;
void input()
{
printf("输入a,b,c,\n");
scanf("%f%f%f", &a, &b, &c);
}
void check()
{
d = b*b - 4.0*a*c;
if (d < 0)
{
printf("输入错误!\n");
printf("请重新输入数据:\n");
input();
}
if (d>0)
flag = 0;
}
void output()
{
x1 = (b - sqrt(d)) / (2.0*a);
x2 = (b + sqrt(d)) / (2.0*a);
printf("%.2f\n", x1);
printf("%.2f\n", x2);
}
int main(void)
{
input();
while (flag)
{
check();
}
output();
system("pause");
}