VC下使用復(fù)數(shù)示例(建議使用“用法一”)
用法一
#include <math.h>
#include <complex>
using namespace std;
typedef complex<double> Complex;
int main(int argc, char* argv[])
{
Complex a,b,c;
a = Complex::complex(1.,.2); //賦初值
printf("%f,%fn",real(a),imag(a)); //real()取實部,imag()取虛部
b = Complex::complex(1.,.2); //賦初值
c = Complex::complex(1.,.2); //賦初值
a = b + c;
printf("%f,%fn",real(a),imag(a));
double k=2.0; //數(shù)乘的時候數(shù)的類型一定要和復(fù)數(shù)中
實部和虛部的類型相同,此處為double
a = k * a; //所有需要和復(fù)數(shù)運算的實數(shù)都要定義為和實部虛部類型相同
printf("%f,%fn",real(a),imag(a));
return 0;
}
******************************************************************
用法二
#include <math.h>
#include <complex>
int main(int argc, char* argv[])
{
std::complex<double> x,y,z;
x = std::complex<double> (1.,.02);
printf("x = %f,j%fn",std::real(x),std::imag(x));
y = std::complex<double> (1.,.02);
z = std::complex<double> (1.,.02);
x = y * z;
printf("x = %f,j%fn",std::real(x),std::imag(x));
return 0;
}
******************************************************************
用法三
#include <math.h>
int main(int argc, char* argv[])
{
_complex c_val1,c_val2,c_val3;
c_val1.x = 1.;
c_val1.y = .2;
c_val2.x = 1.;
c_val2.y = .2;
c_val3.x = c_val1.x + c_val2.x;
c_val3.y = c_val1.y + c_val2.y;
printf("sum = %f,j%fn",c_val3.x,c_val3.y);
return 0;
}