#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <map>
#include <string.h>
#include <queue>
const int N = 0x3f3f3f;
using namespace std;
typedef struct
{
float Realpart;//实部
float Imagepart;//虚部
}Complex;
void Create(Complex &C,float x,float y)
{
C.Realpart=x;//获得实部
C.Imagepart=y;//获得虚部
}
float GetReal(Complex C)
{
return C.Realpart;//获得实部
}
float GetImag(Complex C)
{
return C.Imagepart;//获得虚部
}
Complex Add(Complex C1,Complex C2)//复数加法
{
Complex sum;
sum.Realpart=C1.Realpart+C2.Realpart;
sum.Imagepart=C1.Imagepart+C2.Imagepart;
return sum;
}
Complex Sub(Complex C1,Complex C2)//复数减法
{
Complex difference;
difference.Realpart=C1.Realpart-C2.Realpart;
difference.Imagepart=C1.Imagepart-C2.Imagepart;
return difference;
}
int main()
{
Complex C1,C2,C3,C4,C5;
float x1,x2,y1,y2;
printf("请输入复数C1的实部和虚部(用空格隔开):");
scanf("%f%f",&x1,&y1);
printf("请输入复数C2的实部和虚部(用空格隔开):");
scanf("%f%f",&x2,&y2);
Create(C1,x1,y1);
Create(C2,x2,y2);
C3=Add(C1,C2);
C4=Sub(C1,C2);
printf("两个复数的和为: %f+%fi\n",GetReal(C3),GetImag(C3));
printf("两个复数的差为: %f+%fi\n",GetReal(C4),GetImag(C4));
}