m0_59184010 2021-06-28 22:23 采纳率: 0%
浏览 2319

从键盘分别输入两个复数实部和虚部

从键盘分别输入两个复数的实部和虚部,求它们的和、差、积、商并分别在屏幕上输出。

输入

 

输入为两行,每行为一个复数,其中整数(a1,a2),(b1,b2),分别为两个复数的实部和虚部,每行数据之间以空格隔

输出

输出为4行,每行分别为两复数的和、差、积、商,其中每行2个数为复数的虚部和实部S1.S2,每行数据之间以空格隔

 

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-06-29 06:03
    关注
    typedef struct complex//构建复数的结构体类型(包含数部和虚部)
    {
    	float Realpart;
    	float Imagepart;
    }Complex;
    
    void Create(Complex &c,float x,float y)//初始化
    {
    	c.Realpart=x;
    	c.Imagepart=y;
    }
    
    Complex Add(Complex c1,Complex c2)//加法运算
    {
    	Complex sum;
    	sum.Realpart=c1.Realpart+c2.Realpart;
    	sum.Imagepart=c1.Imagepart+c2.Imagepart;
    	return sum;
    }
    Complex Sub(Complex c1,Complex c2)//减法运算
    {
    	Complex dif;
    	dif.Realpart=c1.Realpart-c2.Realpart;
    	dif.Imagepart=c1.Imagepart-c2.Imagepart;
    	return dif;
    }
    Complex Mul(Complex c1,Complex c2)//乘法运算
    {
    	Complex cheng;
    	cheng.Realpart=c1.Realpart*c2.Realpart-c1.Imagepart*c2.Imagepart;
    	cheng.Imagepart=c1.Realpart*c2.Imagepart+c1.Imagepart*c2.Realpart;
    	return cheng;
    }
    Complex Div(Complex c1,Complex c2)//除法运算
    {
    	Complex chu;
    	chu.Realpart=(c1.Realpart*c2.Realpart+c1.Imagepart*c2.Imagepart)/(c2.Realpart*c2.Realpart+c2.Imagepart*c2.Imagepart);
    	chu.Imagepart=(c1.Imagepart*c2.Realpart-c1.Realpart*c2.Imagepart)/(c2.Realpart*c2.Realpart+c2.Imagepart*c2.Imagepart);
    	if((c2.Realpart*c2.Realpart+c2.Imagepart*c2.Imagepart)==0)
    		printf("the num doesnt exist");
    	else
    	return chu;
    }
    void Show(Complex c)//复数类型的表示方法
    {
    	printf("%f %f\n",c.Realpart,c.Imagepart);
    } 
    
    int main()
    {
        int x,y;
        printf("请输入第一个复数的实部与虚部:");
        scanf("%d %d",&x,&y);
        Complex c1;
        Create(c1,x,y);
        printf("请输入第二个复数的实部与虚部:");
        scanf("%d %d",&x,&y);
        Create(c2,x,y);
        Complex c = Add(c1,c2);
        Show(c);
        c = Sub(c1,c2);
        Show(c);
        c = Mul(c1,c2);
        Show(c);
        d = Div(c1,c2);
        Show(c);
        return 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog