# include <stdio.h>
# include <math.h>
int main(void)
{
double a, b, c;
double delta;
double x1, x2;
char ch;
do
{
printf("请输入一元二次方程的三个系数:\n");
printf("a = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);
printf("c = ");
scanf("%lf", &c);
delta = b*b - 4*a*c;
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("有两个解,x1 = %lf, x2 = %lf\n", x1, x2);
}
else if (0 == delta)
{
x1 = x2 = (-b) / (2*a);
printf("有唯一解,x1 = x2 = %lf\n", x1, x2);
}
else
{
printf("无实数解!\n");
}
printf("您想继续么(Y/N): ");
scanf(" %c", &ch); //%c前面必须得加一个空格 原因略
} while ('y'==ch || 'Y'==ch);
return 0;
}
【以下回答由 GPT 生成】
解一元二次方程涉及到使用平方根函数、计算和判别式等基本数学知识,并且需要掌握如何在C语言中使用这些知识实现代码。
下面是一个基于C语言的解一元二次方程的代码实现:
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c, delta, x1, x2;
printf("请输入一元二次方程的系数:\n");
printf("请输入a的值:");
scanf("%lf", &a);
printf("请输入b的值:");
scanf("%lf", &b);
printf("请输入c的值:");
scanf("%lf", &c);
delta = b * b - 4 * a * c;
if (delta > 0) {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个不相等的实数解,x1 = %.2lf, x2 = %.2lf\n", x1, x2);
} else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("方程有两个相等的实数解,x1 = x2 = %.2lf\n", x1);
} else {
printf("方程无实数解\n");
}
return 0;
}
在这个代码中,我们首先定义了a、b和c三个变量,分别表示一元二次方程的系数。然后通过scanf
函数获取用户输入的系数值。接着,我们计算了一元二次方程的判别式delta,并根据delta的值判断方程的解的情况。最后,我们根据判别式的结果计算方程的实数解,并通过printf
函数将解输出给用户。
【相关推荐】