用结构体封装复数,当实部或虚部等于零时,不输出其相应的实部和虚部
时间: 2024-10-26 12:03:18 浏览: 21
使用pybind11封装C++结构体作为参数的函数实现步骤
在编程中,我们可以使用结构体(struct)来封装复数,并提供一种策略,在实部或虚部为0时省略显示。下面是一个简单的例子,展示了如何在C语言中创建一个复数结构体`Complex`:
```c
typedef struct {
double real; // 实部
double imag; // 虚部
} Complex;
// 创建一个函数来打印复数,如果实部或虚部为0,则不显示
void print_complex(Complex c) {
if (c.real == 0 && c.imag == 0) {
printf("(0, 0)\n"); // 如果都是0,直接表示复数为0
} else if (c.real != 0) {
printf("(%f, %f)\n", c.real, c.imag); // 只有实部不为0时才显示
} else { // 只有虚部不为0时
printf("(0, %f)\n", c.imag);
}
}
```
在这个例子中,当我们调用`print_complex`并传递一个复数结构体实例,只有实部或虚部非零时才会显示它们。如果两者都为0,会简单地输出`(0, 0)`。
阅读全文