c_cpp C - 结构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp C - 结构相关的知识,希望对你有一定的参考价值。

#include <math.h>

struct ComplexStruct {
    // 定义复数的结构体
    double x, y;
};

double real_part(struct ComplexStruct z){
    // 返回复数的实部
    return z.x;
}

double img_part(struct ComplexStruct z){
    // 返回复数的虚部
    return z.y;
}

double magnitude(struct ComplexStruct z){
    // 返回复数的模
    return sqrt(z.x * z.x + z.y * z.y);
}

double angle(struct ComplexStruct z){
    // 返回复数的辐角
    return atan2(z.y, z.x);
}

struct ComplexStruct make_from_real_img(double x, double y){
    // 用实部和虚部构造复数结构体
    struct ComplexStruct z;
    z.x = x;
    z.y = y;
    return z;
}

struct ComplexStruct make_from_mag_ang(double r, double A){
    // 用辐角和模构造复数结构体
    struct ComplexStruct z;
    z.x = r * cos(A);
    z.y = r * sin(A);
    return z;
}

// 定义复数的加减乘除运算
struct ComplexStruct add_complex(struct ComplexStruct z1, struct ComplexStruct z2){
    return make_from_real_img(
        real_part(z1) + real_part(z2),
	img_part(z1) + img_part(z2)
    );
}

struct ComplexStruct sub_complex(struct ComplexStruct z1, struct ComplexStruct z2){
    return make_from_real_img(
        real_part(z1) - real_part(z2),
	img_part(z1) - img_part(z2)
    );
}

struct ComplexStruct mul_complex(struct ComplexStruct z1, struct ComplexStruct z2){
    return make_from_mag_ang(
        magnitude(z1) * magnitude(z2),
	angle(z1) + angle(z2)
    );
}

struct ComplexStruct div_complex(struct ComplexStruct z1, struct ComplexStruct z2){
    return make_from_mag_ang(
        magnitude(z1) / magnitude(z2),
	angle(z1) - angle(z2)
    );
}

以上是关于c_cpp C - 结构的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C - 结构

c_cpp C ++数据结构

c_cpp 基本的c结构

c_cpp C程序的基本结构

c_cpp 初始化结构体#结构体

c_cpp cpp c样式​​结构转换