C 数据结构 第一章例题 复数的定义、表示和实现

#include <iostream>
using namespace std; 
 
typedef struct
{
	double real;
	double imag;
}Complex;
 
void InitComplex(Complex *&z)
{
	z=new Complex;
}
 
void AssignComplex(Complex *&z,double v1,double v2)
{
	z->real=v1;
	z->imag=v2;
}
 
void DispComplex(const Complex *z)
{
	cout<<"("<<z->real<<","<<z->imag<<")"<<endl;
}
 
void Add(const Complex *z1, const Complex *z2,Complex *&sum)
 {
	InitComplex(sum);
	sum->real = z1->real +z2->real;
	sum->imag = z1->imag +z2->imag;
 }
 
void Difference(const Complex *z1,const Complex *z2, Complex *& dif)
 {
	InitComplex(dif);
	dif->real = z1->real - z2->real;
	dif->imag = z1->imag - z2->imag;
 }
 
 int main() {
 
	double a,b;
	Complex *z1,*z2,*sum,*diff;
	
	cout<<"请输入第一个复数的实部:" ; 
	cin>>a;
	cout<<"请输入第一个复数的虚部:"; 
	cin>>b;
	InitComplex(z1);
	AssignComplex(z1,a,b); 
	
	cout<<"请输入第二个复数的实部:" ; 
	cin>>a;
	cout<<"请输入第二个复数的虚部:"; 
	cin>>b;
	InitComplex(z2);
	AssignComplex(z2,a,b); 
	
	cout<<"第二个复数为:";
	DispComplex(z2);
	
	InitComplex(sum);
	Difference(z1,z2,sum);
	cout<<"这两个复数的和为:";
	DispComplex(sum); 
	
	InitComplex(diff);
	Difference(z1,z2,diff);
	cout<<"这两个复数的差为:";
	DispComplex(diff); 
	
	delete z1;
	delete z2;
	
	return 0;
 }

以复数为例,给出一个完整的抽象数据类型的定义、表现和实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值