以下是解四次方程的C语言代码,其中包括用户输入系数、判断方程是否有解、判断方程是否有重根、以及输出解的过程:

#include <stdio.h>
#include <math.h>

int main() {
    double a, b, c, d, p, q, x1, x2, x3, x4;
    printf("请输入四次方程的各个系数:\n");
    printf("a = ");
    scanf("%lf", &a);
    printf("b = ");
    scanf("%lf", &b);
    printf("c = ");
    scanf("%lf", &c);
    printf("d = ");
    scanf("%lf", &d);
    if (a == 0) {
        printf("错误:方程不是四次方程!\n");
        return 0;
    }
    p = (8 * a * c - 3 * b * b) / (8 * a * a);
    q = (b * b * b - 4 * a * b * c + 8 * a * a * d) / (8 * a * a * a);
    double delta = p * p * p / 27 + q * q / 4;
    if (delta > 0) {
        double u = cbrt(-q / 2 + sqrt(delta));
        double v = cbrt(-q / 2 - sqrt(delta));
        x1 = u + v - b / (4 * a);
        x2 = -u - v - b / (4 * a);
        printf("方程的解为:\n");
        printf("x1 = %lf\n", x1);
        printf("x2 = %lf\n", x2);
    } else if (delta == 0) {
        double u = cbrt(-q / 2);
        x1 = 2 * u - b / (4 * a);
        x2 = -u - b / (4 * a);
        printf("方程的解为:\n");
        printf("x1 = %lf\n", x1);
        printf("x2 = %lf\n", x2);
    } else {
        double u = acos(-sqrt(-27 / p / p / p * q) / 2);
        x1 = 2 * sqrt(-p / 3) * cos(u / 3) - b / (4 * a);
        x2 = 2 * sqrt(-p / 3) * cos((u + 2 * M_PI) / 3) - b / (4 * a);
        x3 = 2 * sqrt(-p / 3) * cos((u + 4 * M_PI) / 3) - b / (4 * a);
        printf("方程的解为:\n");
        printf("x1 = %lf\n", x1);
        printf("x2 = %lf\n", x2);
        printf("x3 = %lf\n", x3);
        if (x1 == x2 && x1 == x3) {
            printf("方程有一重根:%lf\n", x1);
        } else if (x1 == x2 || x1 == x3 || x2 == x3) {
            printf("方程有二重根:");
            if (x1 == x2) {
                printf("%lf,%lf\n", x1, x3);
            } else if (x1 == x3) {
                printf("%lf,%lf\n", x1, x2);
            } else {
                printf("%lf,%lf\n", x2, x3);
            }
        }
    }
    return 0;
}

其中,a、b、c、d分别表示四次项、三次项、二次项和常数项的系数。p、q分别表示一次项系数、常数项系数的计算结果。delta表示判别式。u、v是用于计算方程的根的中间变量。x1、x2、x3、x4表示方程的四个解。在输出解的过程中,根据解的情况分别进行输出,包括有两个实根、有三个实根、有一重根和有二重根。

帮我写一个解四次方程的c语言代码要求方程的各个系数由用户输入

原文地址: http://www.cveoy.top/t/topic/bBKo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录