121.md 1.7 KB
Newer Older
W
wizardforcel 已提交
1
# C 程序:通过将结构传递给函数来添加两个复数
W
init  
wizardforcel 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

> 原文: [https://www.programiz.com/c-programming/examples/complex-number-add](https://www.programiz.com/c-programming/examples/complex-number-add)

#### 在此示例中,您将学习将两个复数用作结构并通过创建用户定义的函数将它们相加。

要理解此示例,您应该了解以下 [C 编程](/c-programming "C tutorial")主题:

*   [C 结构](/c-programming/c-structures)
*   [C 的结构和功能](/c-programming/c-structure-function)

* * *

## 加两个复数

```c
#include <stdio.h>
typedef struct complex {
    float real;
    float imag;
} complex;

complex add(complex n1, complex n2);

int main() {
    complex n1, n2, result;

    printf("For 1st complex number \n");
    printf("Enter the real and imaginary parts: ");
    scanf("%f %f", &n1.real, &n1.imag);
    printf("\nFor 2nd complex number \n");
    printf("Enter the real and imaginary parts: ");
    scanf("%f %f", &n2.real, &n2.imag);

    result = add(n1, n2);

    printf("Sum = %.1f + %.1fi", result.real, result.imag);
    return 0;
}

complex add(complex n1, complex n2) {
    complex temp;
    temp.real = n1.real + n2.real;
    temp.imag = n1.imag + n2.imag;
    return (temp);
} 
```

**输出**

```c
For 1st complex number
Enter the real and imaginary parts: 2.1
-2.3

For 2nd complex number
Enter the real and imaginary parts: 5.6
23.2
Sum = 7.7 + 20.9i 
```

W
wizardforcel 已提交
62
在该程序中,声明了一个名为`complex`的结构。 它具有两个成员:`真正的``imag`。 然后,我们从该结构创建了两个变量`n1``n2`
W
init  
wizardforcel 已提交
63 64 65 66

这两个结构变量将传递给`add()`函数。 该函数计算总和并返回包含该总和的结构。

最后,从`main()`函数打印出复数的总和。