Dallas884 2022-02-27 11:12 采纳率: 58.3%
浏览 171
已结题

设计一个复数数据结构,主要操作有复数的初始化、加、减和乘4种,要求利用这个数据结构,计算两个复数之和与两个复数之差的乘积,并打印此结果。

#include <stdio.h>

struct complex {
    double real;
    double image;
};

struct complex init(double real, double image);
struct complex add(struct complex a, struct complex b);
struct complex sub(struct complex a, struct complex b);
struct complex mul(struct complex a, struct complex b);

int main(void) {
    double real,image;
    struct complex x,y,z,t1,t2;
    scanf("%lf%lf",&real,&image);
    x=init(real,image);
    scanf("%lf%lf",&real,&image);
    y=init(real,image);
    t1=add(x,y);
    t2=sub(x,y);
    z=mul(t1,t2);

    if(z.image>=0)printf("%.2lf+%.2fi\n",z.real,z.image);
    else printf("%.2lf%.2fi\n",z.real,z.image);

    return 0;
}

/*提交以下代码*/
struct complex init(double real, double image) {

}

struct complex add(struct complex a, struct complex b) {

}

struct complex sub(struct complex a, struct complex b) {

}

struct complex mul(struct complex a, struct complex b) {

}

共2行:每行2个实数,分别表示复数的实部和虚部
输出
见样例
样例输入 Copy
1 2
2 3
样例输出 Copy
2.00-8.00i

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2022-02-27 11:53
    关注

    代码修改如下,供参考:

    #include <stdio.h>
    struct complex {
        double real;
        double image;
    };
     
    struct complex init(double real, double image);
    struct complex add(struct complex a, struct complex b);
    struct complex sub(struct complex a, struct complex b);
    struct complex mul(struct complex a, struct complex b);
     
    int main(void) {
        double real,image;
        struct complex x,y,z,t1,t2;
        scanf("%lf%lf",&real,&image);
        x=init(real,image);
        scanf("%lf%lf",&real,&image);
        y=init(real,image);
        t1=add(x,y);
        t2=sub(x,y);
        z=mul(t1,t2);
     
        if(z.image>=0)
            printf("%.2lf+%.2fi\n",z.real,z.image);
        else
            printf("%.2lf%.2fi\n",z.real,z.image);
    
        return 0;
    }
     
    /*提交以下代码*/
    struct complex init(double real, double image) {
        struct complex c;
        c.real = real;
        c.image= image;
        return c;
    }
     
    struct complex add(struct complex a, struct complex b) {
        struct complex sum;
        sum.real = a.real + b.real;
        sum.image= a.image+ b.image;
        return sum;
    }
     
    struct complex sub(struct complex a, struct complex b) {
        struct complex dif;
        dif.real = a.real - b.real;
        dif.image= a.image- b.image;
        return dif;
    }
     
    struct complex mul(struct complex a, struct complex b) {
        struct complex product;
        product.real = a.real * b.real - a.image * b.image;
        product.image= a.real * b.image+ a.image * b.real;
        return product;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 已采纳回答 2月27日
  • 创建了问题 2月27日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。