c语言编程实现下列抽象数据类型并实际应用ADT COMPLEX 数据对象:D=c1c2 c1∈Rc2∈R 数据关系:R=c1c2 c1∈Rc2∈R 基本操作 Createx y &z生成一个复数 操作结果 c1c2分别被参数x yx∈R y∈R赋值用z返回生成的复数 x+yi。
#include<stdio.h>
typedef struct { float realPart; //实部 float imagPart; //虚部 } COMPLEX;
void Create(float x, float y, COMPLEX *z) { z->realPart = x; z->imagPart = y; }
void Add(COMPLEX z1, COMPLEX z2, COMPLEX *sum) { sum->realPart = z1.realPart + z2.realPart; sum->imagPart = z1.imagPart + z2.imagPart; }
void Subtract(COMPLEX z1, COMPLEX z2, COMPLEX *difference) { difference->realPart = z1.realPart - z2.realPart; difference->imagPart = z1.imagPart - z2.imagPart; }
void Multiply(COMPLEX z1, COMPLEX z2, COMPLEX *product) { product->realPart = z1.realPart * z2.realPart - z1.imagPart * z2.imagPart; product->imagPart = z1.realPart * z2.imagPart + z2.realPart * z1.imagPart; }
void Get_RealPart(COMPLEX z, float *e) { *e = z.realPart; }
void Get_ImagPart(COMPLEX z, float *e) { *e = z.imagPart; }
int main() { COMPLEX z1, z2, sum, difference, product; float realPart, imagPart;
Create(1.2, 3.4, &z1);
Create(5.6, 7.8, &z2);
Add(z1, z2, &sum);
Subtract(z1, z2, &difference);
Multiply(z1, z2, &product);
Get_RealPart(sum, &realPart);
Get_ImagPart(difference, &imagPart);
printf("Sum: %.2f + %.2f i\n", sum.realPart, sum.imagPart);
printf("Difference: %.2f + %.2f i\n", difference.realPart, difference.imagPart);
printf("Product: %.2f + %.2f i\n", product.realPart, product.imagPart);
printf("Real part of sum: %.2f\n", realPart);
printf("Imaginary part of difference: %.2f\n", imagPart);
return 0;
}
原文地址: https://www.cveoy.top/t/topic/i3HE 著作权归作者所有。请勿转载和采集!