二元一次方程求解函数
// 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;
}
运行结果