121.md 1.7 KB
Newer Older
W
wizardforcel 已提交
1
# C 程序:通过将结构传递给函数来相加两个复数
W
init  
wizardforcel 已提交
2 3 4 5 6 7 8 9

> 原文: [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)
W
wizardforcel 已提交
10
*   [C 结构和函数](/c-programming/c-structure-function)
W
init  
wizardforcel 已提交
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

* * *

## 加两个复数

```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()`函数打印出复数的总和。