求解一元二次方程——c++实现

二元一次方程求解函数

// quadraticEquationSolving.h
#pragma once
#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

vector<double> solvingQuadraticEquation(double a, double b, double c)
{
	cout << "This is a program to solve quadratic equations (ax^2+bx+c=0).\n";
	//resultVector[0]=x1;resultVector[1]=x2;resultVector[2]=1,x1 and x2 are real number; resultVector[3]=0, x1 and x2 are imafinary number.
	vector<double> resultVector;
	double x1 = 0;
	double x2 = 0;
	double judgementNumber = 0;
	double flagBool = 1; 

	if(a == 0 && b == 0 && c == 0){
		cout << "There are an infinite number of solutions.\n";
		resultVector.push_back(x1);
		resultVector.push_back(x2);
		return resultVector;
	}
	if (a == 0 && b == 0 && c !=0){
		cout << "There no solutions.\n";
		return resultVector;
	}
	if(a == 0 && b != 0){
		x1 = -c/b;
		x2 = -c/b;
	}
	if(a != 0){
		judgementNumber = b*b - 4*a*c;
		if(judgementNumber >= 0){
			x1 = (-b + sqrt(judgementNumber))/2/a;
			x2 = (-b - sqrt(judgementNumber))/2/a;
		}
		else {
			x1 = (-b + sqrt(-judgementNumber))/2/a;
			x2=(-b+sqrt(-judgementNumber))/2/a;
			flagBool = 0;
		}
	}
	resultVector.push_back(x1);
	resultVector.push_back(x2);
	resultVector.push_back(flagBool);
	if(resultVector[2] == 0){
		cout << "The solution: x1 = " << resultVector[0] << "i" 
			   << "; x2 = " << resultVector[1] << "i\n";
	}else{
		cout << "The solution: x1 = " << resultVector[0] 
			<< "; x2 = " << resultVector[1] << "\n";
	}
	return resultVector;
}

使用实例

// quadraticEquationSolvingExample.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <string>
#include "quadraticEquationSolving.h"

int _tmain(int argc, _TCHAR* argv[])
{
	cout << "This is a example to use the solvingQuadraticEquation example.\n";
	double a = 0;
	double b = 0;
	double c = 0;
	string s = "g";
	cout << "Please input the coefficient for equation(ax^2+bx+c=0).\n";
	while(s == "g"){
		cout << "a = ";
		cin >> a;
		cout <<"b = ";
		cin >> b;
		cout << "c = ";
		cin >> c;
		solvingQuadraticEquation(a,b,c);
		cout << "Please input the coefficient for equation.\n";
		cout << "Enter 'g' to go on and 'q' to quit: ";
		cin >> s;
	}
	cout << "Bye!\n";
	return 0;
}

运行结果
运行结果

原创文章 3 获赞 1 访问量 161

猜你喜欢

转载自blog.csdn.net/u014630251/article/details/105638741
今日推荐