float a;
float b;
float c;
float x1;
float x2;
float delta;
float p;
float q;
printf("请输入a、b、c的值:");
scanf_s("%f,%f,%f", &a, &b, &c);
delta= b * b - 4 * a * c;
p = -b / (2 * a);
q = sqrt(delta) / (2 * a);
if (delta < 0)
{
printf("此方程无解");
}
else
{
x1 = p + q;
x2 = p - q;
printf("此方程的解为x1 = %f, x2 = %f\n", x1, x2);
}
问题已解决,是VS编译器中scanf_s函数的问题,和scanf的输入形式不太一样
解决方法:在文件首行加上_CRT_SECURE_NO_WARNINGS之后,将scanf_s改为scanf即可正常输出。
请务必关注sqrt函数的使用,以及其对负数的处理和返回结果