#include<iostream>
using namespace std;
typedef struct {
double real;
double imag;
} cpxNum;
cpxNum c;
void assign(cpxNum &c, double r, double i); //初始化
void print(cpxNum c); //打印
cpxNum cplus( cpxNum c1, cpxNum c2); //加
cpxNum cmilus(cpxNum c1, cpxNum c2); //减
cpxNum cmultiply( cpxNum c1, cpxNum c2); //乘
cpxNum cdivide(cpxNum c1, cpxNum c2); //除
int main(){
cpxNum c1, c2;
double real, imag;
cout << "请输入第一个复数的实部和虚部: ";
cin >> real >> imag;
assign(c1, real, imag);
cout << "您生成的第一个复数是: " ;
print(c1);
cout << "请输入第二个复数的实部和虚部: " ;
cin >> real >> imag;
assign(c2, real, imag);
cout << "您生成的第二个复数是: ";
print(c2);
cout << endl;
cout << "***********复数运算测试*************" << endl;
cout << "c1 + c2的结果是: ";
print(cplus(c1, c2));
cout << "c1 - c2的结果是: ";
print(cmilus(c1, c2));
cout << "c1 * c2的结果是: ";
print(cmultiply(c1, c2));
cout << "c1 / c2的结果是: ";
if(c2.real*c2.real+c2.imag*c2.imag == 0) cout << "无法相除" << endl;
else print(cdivide(c1, c2));
cout << "***********复数运算测试结束*************" << endl;
return 0;
}
void assign(cpxNum &c, double r, double i){
c.real = r;
c.imag = i;
}
void print(cpxNum c){
if(c.real != 0) cout << c.real;
if(c.imag > 0){
if(c.imag != 1){
cout << "+" << c.imag << "i" << endl;
}else{
cout << "+" << "i" << endl;
}
}else if(c.imag < 0){
if(c.imag != -1){
cout << c.imag << "i" << endl;
}else{
cout << "-i" << endl;
}
}else{
if(c.real == 0) cout << "0" <<endl;
else cout << endl;
}
//cout << c.real << " " << c.imag << endl;
}
cpxNum cplus( cpxNum c1, cpxNum c2){
c.real = c1.real + c2.real;
c.imag = c1.imag + c2.imag;
return c;
}
cpxNum cmilus(cpxNum c1, cpxNum c2){
c.real = c1.real - c2.real;
c.imag = c1.imag - c2.imag;
return c;
}
cpxNum cmultiply( cpxNum c1, cpxNum c2){
c.real = c1.real * c2.real - c1.imag * c2.imag;
c.imag = c1.imag * c2.real + c1.real * c2.imag;
return c;
}
cpxNum cdivide(cpxNum c1, cpxNum c2){
c.real = (c1.real*c2.real+c1.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
c.imag = (c1.imag*c2.real-c1.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
return c;
}
复数的加减乘除
最新推荐文章于 2021-11-12 16:12:05 发布