# C 程序：通过将结构传递给函数来相加两个复数

> 原文： [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 
```

在该程序中，声明了一个名为`complex`的结构。 它具有两个成员：`real`和`imag`。 然后，我们从该结构创建了两个变量`n1`和`n2`。

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

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