复数的加减乘除

本文介绍了一个复数库的设计与实现,该库能够处理复数的基本运算,包括加、减、乘、除。用户可以通过输入实部和虚部进行操作,系统将输出格式化的复数结果。文章提供了详细的代码示例,展示了如何处理各种运算和特殊情况。

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

设计复数库,实现基本的复数加减乘除运算。

   输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。

   注意考虑特殊情况,无法计算时输出字符串"error"。

 

样例输入

 

2 4 * -3 2

 

样例输出

 

-14-8i

 

样例输入

 

3 -2 + -1 3

 

样例输出

 

2+1i

 

import java.util.Scanner;

 

public class ADV120 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

double a = sc.nextDouble();

double b = sc.nextDouble();

String m = sc.next();

double c = sc.nextDouble();

double d = sc.nextDouble();

String g = null;

String h =null;

if(c*c+d*d!=0){

char s[]=m.toCharArray();

double e =0;

double f = 0;

switch (s[0]) {

case '+':

 e =a+c;

f =b+d;

if(e%(int)e==0){

g=String.valueOf((int)e);

}else{

g=String.valueOf(e);

}

if(f%(int)f==0){

h=String.valueOf((int)f);

}else{

h=String.valueOf(f);

}

if(e==0&&f!=0){

         System.out.println(h+"i");

         }else{

         if(f<0){

         System.out.println(g+h+"i");

         }else if(f==0){

         System.out.println(e);

         }else{

         System.out.println(g+"+"+h+"i");

         }

         }

break;

        case '-':

          e =a-c;

 f =b-d;

 if(e%(int)e==0){

g=String.valueOf((int)e);

}else{

g=String.valueOf(e);

}

if(f%(int)f==0){

h=String.valueOf((int)f);

}else{

h=String.valueOf(f);

}

if(e==0&&f!=0){

         System.out.println(h+"i");

         }else{

         if(f<0){

         System.out.println(g+h+"i");

         }else if(f==0){

         System.out.println(e);

         }else{

         System.out.println(g+"+"+h+"i");

         }

         }

break;

        case '*':

         e=(a*c-b*d);

         f=(a*d+c*b);

         if(e%(int)e==0){

g=String.valueOf((int)e);

}else{

g=String.valueOf(e);

}

if(f%(int)f==0){

h=String.valueOf((int)f);

}else{

h=String.valueOf(f);

}

if(e==0&&f!=0){

         System.out.println(h+"i");

         }else{

         if(f<0){

         System.out.println(g+h+"i");

         }else if(f==0){

         System.out.println(e);

         }else{

         System.out.println(g+"+"+h+"i");

         }

         }

         break;

        case '/':

         e=(a*c+b*d)/(c*c+d*d);

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

        

        

         if(e%(int)e==0){

g=String.valueOf((int)e);

}else{

g=String.valueOf(e);

}

if(f%(int)f==0){

h=String.valueOf((int)f);

}else{

h=String.valueOf(f);

}

if(e==0&&f!=0){

         System.out.println(h+"i");

         }else{

         if(f<0){

         System.out.println(g+h+"i");

         }else if(f==0){

         System.out.println(e);

         }else{

         System.out.println(g+"+"+h+"i");

         }

         }

         break;

default:

break;

}

}else{

System.out.println("error");

}

 

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值