4-3 使用函数计算两个复数之积 (10分)

 

若两个复数分别为:c1=x1+y1ic_1=x_1 + y_1 ic1=x1+y1ic2=x2+y2ic_2=x_2 + y_2 ic2=x2+y2i,则它们的乘积为 c1×c2=(x1x2−y1y2)+(x1y2+x2y1)ic_1 \times c_2 = (x_1 x_2 - y_1 y_2) + (x_1 y_2 + x_2 y_1)ic1×c2=(x1x2y1y2)+(x1y2+x2y1)i

本题要求实现一个函数计算两个复数之积。

函数接口定义:

double result_real, result_imag;
void complex_prod( double x1, double y1, double x2, double y2 );

其中用户传入的参数为两个复数x1+y1iiix2+y2iii;函数complex_prod应将计算结果的实部存放在全局变量result_real中、虚部存放在全局变量result_imag中。

裁判测试程序样例:

#include<stdio.h> 

double result_real, result_imag;
void complex_prod( double x1, double y1, double x2, double y2 );

int main(void) 
{ 
    double imag1, imag2, real1, real2;				

    scanf("%lf %lf", &real1, &imag1); 												
    scanf("%lf %lf", &real2, &imag2); 												
    complex_prod(real1, imag1, real2, imag2); 				
    printf("product of complex is (%f)+(%f)i\n", result_real, result_imag);
				
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

1 2
-2 -3

输出样例:

product of complex is (4.000000)+(-7.000000)i



void complex_prod( double x1, double y1, double x2, double y2 )
{
	result_real = x1*x2 - y1*y2;
	result_imag = x1*y2 + x2*y1;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章