用java实现复数的_Java实现复数运算

本文介绍了一个简单的Java程序,用于实现两个复数之间的基本数学运算,包括加法、减法、乘法和除法,并展示了如何通过结构体指针返回运算结果。

1 问题描述

编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:

要求:(1)定义一个结构体类型来描述复数。

(2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。

(3)必须使用结构体指针的方法把函数的计算结果返回。

说明:用户输入:运算符号(+,-,*,/) a b c d.

输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。

输入:

- 2.5 3.6 1.5 4.9

输出:

1.00±1.30i

2 解决方案

package com.liuzhen.systemExe;

import java.io.IOException;

import java.util.Scanner;

public class Main{

public void complexOperation(char operation,double a,double b,double c,double d){

if(operation == '+'){

double temp1 = a + c;

double temp2 = b + d;

System.out.printf("%.2f",temp1);

System.out.print("+");

System.out.printf("%.2f",temp2);

System.out.print("i");

}

if(operation == '-'){

double temp1 = a - c;

double temp2 = b - d;

System.out.printf("%.2f",temp1);

System.out.print("+");

System.out.printf("%.2f",temp2);

System.out.print("i");

}

if(operation == '*'){

double temp1 = a*c - b*d;

double temp2 = a*d + b*c;

System.out.printf("%.2f",temp1);

System.out.print("+");

System.out.printf("%.2f",temp2);

System.out.print("i");

}

if(operation == '/'){

double temp1 = (a*c + b*d)/(c*c + d*d);

double temp2 = (b*c - a*d)/(c*c + d*d);

System.out.printf("%.2f",temp1);

System.out.print("+");

System.out.printf("%.2f",temp2);

System.out.print("i");

}

}

public static void main(String[] args){

Main test = new Main();

Scanner in = new Scanner(System.in);

//System.out.println("请输入一个运算符和四个数字:");

//此处重点在于单个字符的输入问题

char operation = 0;

try {

operation = (char)System.in.read();

} catch (IOException e) {

e.printStackTrace();

}

double[] temp = new double[4];

for(int i = 0;i < 4;i++){

temp[i] = in.nextDouble();

}

test.complexOperation(operation, temp[0], temp[1], temp[2], temp[3]);

}

}

运行结果:

请输入一个运算符和四个数字:

+ 1 2 3 4

4.00+6.00i

请输入一个运算符和四个数字:

- 1 2 3 4

-2.00+-2.00i

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值