吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1418|回复: 15
收起左侧

[C&C++ 原创] 用C++写了一份简单解一元二次方程代码

[复制链接]
LJD185 发表于 2023-7-29 00:09
#include <stdio.h>
#include <math.h>

int main() {
    double a, b, c;
    double discriminant, x1, x2;

    printf("请输入方程的三个系数(a, b, c):");
    scanf("%lf %lf %lf", &a, &b, &c);

    discriminant = b * b - 4 * a * c;

    if (discriminant > 0) {
        x1 = (-b + sqrt(discriminant)) / (2 * a);
        x2 = (-b - sqrt(discriminant)) / (2 * a);
        printf("方程的解为:x1 = %.2lf, x2 = %.2lf", x1, x2);
    } else if (discriminant == 0) {
        x1 = -b / (2 * a);
        printf("方程的解为:x1 = x2 = %.2lf", x1);
    } else {
        double realPart = -b / (2 * a);
        double imaginaryPart = sqrt(-discriminant) / (2 * a);
        printf("方程的解为:x1 = %.2lf + %.2lfi, x2 = %.2lf - %.2lfi", realPart, imaginaryPart, realPart, imaginaryPart);
    }

    return 0;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

苏紫方璇 发表于 2023-7-29 21:22
推荐使用这种方法插入代码
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thread-713042-1-1.html
(出处: 吾爱破解论坛)
 楼主| LJD185 发表于 2023-7-30 00:27
TinaZerotwo 发表于 2023-7-29 18:22
我感觉在判断虚根的情况下有点不足,程序没有提供适当的错误提示,告知用户输入的方程无实数解。

根据你的提醒,改进一下,有问题还望不吝赐教。

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

int main() {
    // 输入一元二次方程的系数
    float a, b, c;
    printf("请输入二次项系数a:");
    scanf("%f", &a);
    printf("请输入一次项系数b:");
    scanf("%f", &b);
    printf("请输入常数项c:");
    scanf("%f", &c);

    // 计算判别式
    float delta = b * b - 4 * a * c;

    // 判断是否有解,并输出解的类型
    if (delta > 0) {
        // 存在两个实根
        float x1 = (-b + sqrt(delta)) / (2 * a);
        float x2 = (-b - sqrt(delta)) / (2 * a);
        printf("方程的两个实根为:x1 = %f, x2 = %f", x1, x2);
    } else if (delta == 0) {
        // 存在一个实根
        float x = -b / (2 * a);
        printf("方程的唯一实根为:x = %f", x);
    }
        else {
        // 判别式小于0,无实根,存在虚根
        float realPart = -b / (2 * a);
        float imagPart = sqrt(-delta) / (2 * a);
        printf("方程的虚根为:x1 = %f + %fi, x2 = %f - %fi
", realPart, imagPart, realPart, imagPart);
    }

    return 0;
}
luozh7682 发表于 2023-7-29 11:14
这是C语言程序,不是C++吧?因为我只是一个菜鸟。
#include <stdio.h>
#include <math.h>
nanaqilin 发表于 2023-7-29 11:54
楼主你可以考虑用矩阵来实现一下
wuai习 发表于 2023-7-29 12:25
差不多,但是还有无解的情况,没考虑。网上有相似的代码,可以参考参考继续完善。
魔术使nqy 发表于 2023-7-29 12:32
这个是c呢,c++都头文件都不是这个,输出也是用cout而不是printf
yuyanfeixue 发表于 2023-7-29 12:32
小黑框这么看会很不舒服,而且对于无理数解大多数情况下希望给出的答案是带根号的那种
aoustes 发表于 2023-7-29 16:12
c语言,但看起来还是好厉害
TinaZerotwo 发表于 2023-7-29 18:22
我感觉在判断虚根的情况下有点不足,程序没有提供适当的错误提示,告知用户输入的方程无实数解。
xiatongxue 发表于 2023-7-29 18:59
看着确实帅加油老哥!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 13:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表