6-11 計算兩個復數之積 (15分)
本題要求實現一個計算復數之積的簡單函數。
函數接口定義:
struct complex multiply(struct complex x, struct complex y);
其中struct complex
是復數結構體,其定義如下:
struct complex{ int real; int imag; };
裁判測試程序樣例:
#include <stdio.h> struct complex{ int real; int imag; }; struct complex multiply(struct complex x, struct complex y); int main() { struct complex product, x, y; scanf("%d%d%d%d", &x.real, &x.imag, &y.real, &y.imag); product = multiply(x, y); printf("(%d+%di) * (%d+%di) = %d + %di\n", x.real, x.imag, y.real, y.imag, product.real, product.imag); return 0; } /* 你的代碼將被嵌在這里 */
輸入樣例:
3 4 5 6
輸出樣例:
(3+4i) * (5+6i) = -9 + 38i
struct complex multiply(struct complex x, struct complex y)
{
struct complex temp;
temp.imag=x.real*y.imag+x.imag*y.real;
temp.real=x.real*y.real+x.imag*y.imag*(-1);
return temp;
}