一元二次方程的根的情况分为实根与虚根两种,代码如下

#include<iostream>
#include<cmath>
using namespace std; float *solve_equ(float, float, float);//a, b, c
int main()
{
float a, b, c;
cout << "enter a, b, c : " << endl;
cin >> a >> b>>c;
float *p = solve_equ(a, b, c);
if (*p == )
{
cout << "x1= " << *(p + ) << endl;
cout << "x2= " << *(p + ) << endl;
}
else if (*p = )
{
cout << "x1= " << *(p + ) <<"+"<< *(p + ) << 'i' << endl;
cout << "x2= " << *(p + ) << *(p + ) << 'i' << endl;
}
else cout << "False!\n"; system("pause");
return ;
}
float *solve_equ(float a, float b, float c)
{
float delta = b * b - * a*c;
float x1, x2, v1, v2, r; //v stands for virtual part; r stands for real part
float *t;
if (delta >= )
{
int flag=; //to tell the different kinds of solutions;
x1 = float(-b + sqrt(delta)) / float( * a);
x2 = float((-b - sqrt(delta))) / float(( * a));
t = (float *)malloc(sizeof(float) * );
*t = flag;
*(t+) = x1;
*(t+) = x2;
return t;
}
else
{
int flag=;
r = float(-b) / float( * a);
v1 = float(sqrt(-delta)) / float( * a);
v2 = -v1;
t = (float *)malloc(sizeof(float) * );
*t = flag;
*(t+) = r;
*(t+) = v1;
*(t+) = v2;
return t;
}
}

最新文章

  1. Block 代码快
  2. JSON 的标准:双引号而非单引号!
  3. 转载:Scalers:要持续行动,不要自我感动
  4. IHttpModule
  5. 【一个iOS官方文档错误】关于keyWindow是否可以接受触摸事件?
  6. Spring的DI(Ioc) - 注入集合类型
  7. HP Webinspect 10 访问wap的url
  8. Bootstrap3.0学习14
  9. FB面经 Prepare: Task Schedule
  10. 【深度学习系列】手写数字识别卷积神经--卷积神经网络CNN原理详解(一)
  11. Vue单页面骨架屏实践
  12. Ubuntu16下Hadoop安装
  13. 理解javascript中的立即执行函数(function(){})()
  14. centos 7.3 安装配置python3.6.1
  15. 老男孩python学习自修第四天【字典的使用】
  16. Go Example--panic
  17. Delphi使用iTools安卓模拟器
  18. git 一些基本的命令操作总结
  19. Android 数据库 大量插入 事务开启
  20. javascript 获取当前浏览器窗口宽高

热门文章

  1. Java8 新特性----函数式接口,以及和Lambda表达式的关系
  2. 再提供一种解决Nginx文件类型错误解析漏洞的方法
  3. Spring Boot 之 Profile --快速搞定多环境使用与切换
  4. Angular 文档中的修改链接是从哪里改的
  5. 51 Nod 1134 最长递增子序列(经典问题回顾)
  6. G. Gangsters in Central City
  7. input输入框如何只能输入非零开头的正整数
  8. CF1213F Unstable String Sort
  9. python中super().__init__和类名.__init__的区别
  10. MQ常问的问题