解方程

github项目地址

这两天得知初二的表妹学了一元二次方程,听说还不会解,我就想着试试用C语言编写解方程。

一元二次方程

用公式法

这种方法效果很好:

#include"funct.h"
void yyec1()
{double a, b, c;double x = MIN, y;cout << "-----------" << endl;cout << "对于ax^2+bx+c=0" << endl;cout << "依降次输入各项系数 a,b,c" << endl;cout << "-----------" << endl;cin >> a >> b >> c;x = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);y = (-b - sqrt(b * b - 4 * a * c)) / (2 * a);cout << "-----------" << endl;cout << "x1="<<x << endl <<"x2="<< y << endl;
}

用试错法

这种好像不是太好:

#include"funct.h"
void yyec2()
{double a, b, c;double x = MIN, y;cout << "-----------" << endl;cout << "对于ax^2+bx+c=0" << endl;cout << "依降次输入各项系数 a,b,c" << endl;cout << "-----------" << endl;cin >> a >> b >> c;for (;; x++){y = x / 10;if (a * y * y + b * y + c == 0){cout << "-----------" << endl;cout << "x=" << y << endl;// break;}}
}

一元三次方程

#include"funct.h"
void yysc()
{double a, b, c, d;double x = MIN, y;cout << "-----------" << endl;cout << "对于ax^3+bx^2+cx+d=0" << endl;cout << "依降次输入各项系数 a,b,c,d" << endl;cout << "-----------" << endl;cin >> a >> b >> c >> d;for (;; x++){y = x / 10;if (a * y * y * y + b * y * y + c * y + d == 0){cout << "-----------" << endl;cout << "x=" << y << endl;break;}}
}

这个就和二次很像,不做多研究。

二元一次

公式法

#include"funct.h"
void eyyc1()
{double a, b, c, d, e, f, x, y;cout << "-----------" << endl;cout << "对于方程组:" << endl;cout << "1.   ax+by=c " << endl;cout << "2.   dx+ey=f " << endl;cout << "依次输入a,b,c,d,e,f:" << endl;cout << "-----------" << endl;cin >> a >> b >> c >> d >> e >> f;y = (c * d - a * f) / (b * d - a * e);x = (b * f - c * e) / (b * d - a * e);cout << "-----------" << endl;cout << "y=" << y << endl;cout << "x=" << x << endl;
}

公式法的错误确实少点,但这似乎不像计算机。

试错法

//此方法不好
#include"funct.h"
void eyyc2()
{double a, b, c, d, e, f;cout << "-----------" << endl;cout << "对于方程组:" << endl;cout << "1.   ax+by=c " << endl;cout << "2.   dx+ey=f " << endl;cout << "依次输入a,b,c,d,e,f:" << endl;cout << "-----------" << endl;cin >> a >> b >> c >> d >> e >> f;double x = MIN, y = MIN, xx, yy;if(d!=0){for (;; y++){yy = y / 100;// cout<<yy<<endl;if (yy*b*d-a*e*yy==c*d-a*f){cout << "-----------" << endl;cout << "y=" << yy << endl;cout << "x=" << (f-e*yy)/d << endl;break;}// else cout<<"0";}}else {for (;; y++){yy = y / 100;// cout<<yy<<endl;if (yy*e==f){cout << "y=" << yy << endl;cout << "x=" << (c-b*yy)/a << endl;break;}// else cout<<"0";}}}

主函数

#include"funct.h"
int main()
{while (1){cout << "-----------" << endl;cout << "1.一元二次" << endl;cout << "2.一元三次" << endl;cout << "3.二元一次" << endl;cout << "-----------" << endl;int se;cin >> se;switch(se){case 1:yyec1(); //yyec2();break;case 2:yysc();break;case 3:eyyc1();//eyyc2();break;default:cout << "what are you inputting?" << endl; break;}}return 0;
}

头文件

#include<iostream>
#include <cmath>
#define MIN -100
using namespace std;
void yyec1();
void yyec2();
void yysc();
void eyyc1();
void eyyc2();

用c++解一元二次方程相关推荐

  1. Java黑皮书课后题第3章:*3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果

    *3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果 题目 题目描述 运行示例 破题 代码 题目 题目描述 ...

  2. 一元三次方程重根判别式_许兴华——关于复数集中解一元二次方程的问题

    在学习复数时,最近有个别比较好学的同学提出一个问题: "对于复数系数一元二次方程,是否可以用求根公式求解呢?" --回答是肯定的! 关于复数集中解一元二次方程的问题.其实,在复数集 ...

  3. 问题三十七:C++怎么解一元四次方程?(1)——怎么解一元二次方程

    37.1 怎么解一元二次方程? ----------------------------------------------main.cpp ----------------------------- ...

  4. Python_解一元二次方程

    #解一元二次方程 import math a = int(input("请输入系数a")) b = int(input("请输入系数b")) c = float ...

  5. 编写lisp程序解一元二次方程_vb解一元二次方程代码

    Vb 程序解一元二次方程 以下是程序代码 需要的控件 7 个 label 3 个 text 一个 command Private Sub Command1_Click() Dim a, b, c, d ...

  6. 用python写一个解一元二次方程的类

    第一步 明确需要的变量 要解一元二次方程,肯定先把它化成一般式:ax^2+bx+c=0,我们需要用到的参数是a,b,c还有一个判别式"▲" ,可以随意给个名字,我这里给的g. 第二 ...

  7. C语言:解一元二次方程

    C语言实验题――一元二次方程 描述 解一元二次方程ax2+bx+c=0的解. 输入 输入三个实数a,b,c的值,且a不等于0. 输出 输出两个根X1和X2,用空格隔开,具体格式为: X1 X2 其中大 ...

  8. 解一元二次方程——Java

    解一元二次方程: 可以使用下面的公式求元二次方程ax*x+bx+c=0的两个根: b*b- 4ac称作一元二次方程的判别式.如果它是正值,那么一元二次方程就有两个实数根.如果它为0,方程式就只有一个根 ...

  9. 解一元二次方程lisp_lisp语言编写lisp程序解二元一次方程组和一元二次方程组应该怎么做​...

    附上相关程序,请审核. ;-------------------------解二元一次方程组------------------------ (defun 1y1c (a c) (if (/= a 0 ...

  10. Numpy 解一元二次方程

    Numpy 解一元二次方程 1.poly1d() 函数 p1 = np.poly1d([2, 3, 5, 7])print(p1, p1.r) # 2x^3+3x^2+5x+7 [-0.0272357 ...

最新文章

  1. 把ePO4.5或者4.6从32位迁移到64位系统
  2. 2014522420145238《信息安全设计基础》实验二
  3. Mobile RDA 同步数据库的类--转
  4. 软件测试文档在哪里,软件测试报告技术文档
  5. 云谊网-赴日人才社交网络
  6. nginx学习文档之三 nginx常用命令
  7. DotNet 学习笔记
  8. Servlet读取xml文件的配置参数
  9. 图解卷积计算原理与pytorch中fold和unfold函数的使用
  10. 单片机类毕业设计题目汇总
  11. C语言程序设计实践 4.4车牌号
  12. leaflet地图原理_Leaflet地图框架使用手册
  13. python的PIL库
  14. 欢迎大家加入Xcode公社
  15. java中宏定义,宏定义的使用
  16. SpringBoot(五)整合Mybatis-Plus
  17. ajax获取的数据中包含html代码,执行ajax返回数据中包含的script脚本代码
  18. Android 报错Failed to load native library: XXXX_so
  19. 【电影推荐】20部生存启示录—灾难大片
  20. Win10蓝屏BAD_POOL_CALLER解决方案(IRST)

热门文章

  1. Unity 2018之ShaderGraph使用基础
  2. 母线电容及其计算方法
  3. python具体学什么-python主要用于什么开发
  4. 如何给自制的微信小程序设置一个密码
  5. centos7.1中安装calamari
  6. Mob研究院 |2019互联网医疗行业洞察
  7. ss-libev 分析
  8. TCP编程服务器与客户端对话
  9. 2022年09月编程语言排行榜
  10. Ubuntu 6.10 (Edgy) 黑体解决方案