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 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助