ALGO142——P1103

本文介绍了一个简单的Java程序,用于实现复数的加法、减法、乘法和除法运算。通过定义复数结构体,并使用不同的函数来完成各种运算,程序能够根据用户输入的复数和运算符进行相应的计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  要求:(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



复数的加法: (a+bi)+(c+di)=(a+c)+(b+d)i

复数的减法: (a+bi)-(c+di)=(a-c)+(b-d)i

复数的乘法:(a+bi)(c+di)=(ac-bd)+(bc+ad)i

复数的除法:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i


import java.util.Scanner;

class plural{
	public float a;
	public float b;
	public float getA() {
		return a;
	}
	public void setA(float a) {
		this.a = a;
	}
	public float getB() {
		return b;
	}
	public void setB(float b) {
		this.b = b;
	}
	public plural(float a, float b) {
		super();
		this.a = a;
		this.b = b;
	}
	
}

public class algo_142 {

	static String mul(plural p1,plural p2){
		String t1 = String.format("%.2f", p1.a*p2.a-p1.b*p2.b);
		String t2 = String.format("%.2f", p1.b*p2.a+p1.a*p2.b);
		return t1+"+"+t2+"i";
	}

	static String div(plural p1,plural p2){
		String t1 = String.format("%.2f", (p1.a*p2.a+p1.b*p2.b)/(p2.a*p2.a+p2.b*p2.b));
		String t2 = String.format("%.2f", (p1.b*p2.a-p1.a*p2.b)/(p2.a*p2.a+p2.b*p2.b));
		return t1+"+"+t2+"i";
	}

	static String add(plural p1,plural p2){
		String t1 = String.format("%.2f", p1.a+p2.a);
		String t2 = String.format("%.2f", p1.b+p2.b);
		return t1+"+"+t2+"i";
	}

	static String sub(plural p1,plural p2){
		String t1 = String.format("%.2f", p1.a-p2.a);
		String t2 = String.format("%.2f", p1.b-p2.b);
		return t1+"+"+t2+"i";
	}
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String op = sc.next();
		float a = sc.nextFloat();
		float b = sc.nextFloat();
		float c = sc.nextFloat();
		float d = sc.nextFloat();
		
		plural p1 = new plural(a,b);
		plural p2 = new plural(c,d);
		
		if(op.equals("*"))
			System.out.println(mul(p1,p2));
		if(op.equals("/"))
			System.out.println(div(p1,p2));
		if(op.equals("+"))
			System.out.println(add(p1,p2));
		if(op.equals("-"))
			System.out.println(sub(p1,p2));
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值