C语言实现复数的四则运算

#include <stdio.h>

// 定义复数结构体
typedef struct {
    double real; // 实部
    double imag; // 虚部
} Complex;

// 创建复数
Complex create_complex(double real, double imag) {
    Complex c;
    c.real = real;
    c.imag = imag;
    return c;
}

// 打印复数
void print_complex(Complex c) {
    printf("(%.2lf + %.2lfi)", c.real, c.imag);
}

// 复数加法
Complex add_complex(Complex a, Complex b) {
    Complex result;
    result.real = a.real + b.real;
    result.imag = a.imag + b.imag;
    return result;
}

// 复数减法
Complex subtract_complex(Complex a, Complex b) {
    Complex result;
    result.real = a.real - b.real;
    result.imag = a.imag - b.imag;
    return result;
}

// 复数乘法
Complex multiply_complex(Complex a, Complex b) {
    Complex result;
    result.real = a.real * b.real - a.imag * b.imag;
    result.imag = a.real * b.imag + a.imag * b.real;
    return result;
}

// 复数除法
Complex divide_complex(Complex a, Complex b) {
    Complex result;
    double denom = b.real * b.real + b.imag * b.imag;
    result.real = (a.real * b.real + a.imag * b.imag) / denom;
    result.imag = (a.imag * b.real - a.real * b.imag) / denom;
    return result;
}

int main() {
    Complex a, b, result;
    int choice;
    double real, imag;

    printf("请输入第一个复数的实部和虚部: ");
    scanf("%lf %lf", &real, &imag);
    a = create_complex(real, imag);

    printf("请输入第二个复数的实部和虚部: ");
    scanf("%lf %lf", &real, &imag);
    b = create_complex(real, imag);

    printf("请选择要进行的运算:\n");
    printf("1. 加法\n");
    printf("2. 减法\n");
    printf("3. 乘法\n");
    printf("4. 除法\n");
    printf("请输入您的选择(1-4): ");
    scanf("%d", &choice);

    switch (choice) {
        case 1:
            result = add_complex(a, b);
            printf("加法结果: ");
            print_complex(result);
            break;
        case 2:
            result = subtract_complex(a, b);
            printf("减法结果: ");
            print_complex(result);
            break;
        case 3:
            result = multiply_complex(a, b);
            printf("乘法结果: ");
            print_complex(result);
            break;
        case 4:
            result = divide_complex(a, b);
            printf("除法结果: ");
            print_complex(result);
            break;
        default:
            printf("无效的选择。\n");
            break;
    }

    return 0;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值