语言两个复数加减法c,复数加减题库_关于C语言的题目:用结构体定义一个复数并实现复数的加法、减法和乘法_淘题吧...

A. c语言 复数的加减法 满足手写规则

输入输复出样例里面的分号 ,不制确定是真会输出,还是只是分隔输入输出。

常见的应该没有分号。输入1+i 2输出3+i

这个程序, 麻烦在于如何将输入的数据,转为复数。

可以先将输入 存为两个字符串,对每个字符串进行解析,转为复数。

对于每个字符串,先查找是否存在i,这个很简单,如果有,那么一定是最后一个。

如果不存在i,那么虚部为0,将字符串转为实部即可。

如果存在i,那么查找是否存在+或者-,如果不存在,说明没有实部,实部设置为0

如果存在只有-, 同时-为字符串第一个元素, 那么一样没有实部。

如果存在+,或者存在不是首元素的-,说明同时有实部和虚部,区分两部分,分别转换。

转换后,得到复数,简单的相加,得到结果。

输出时,一样要判断实部,虚部是否为0,然后再根据复数规则输出。 这部分相对要简单的多了。

B. 如何编写程序用成员函数形式实现复数类加减法运算重载

正解见下:

#include

using namespace std;

class complex//复数类声明

{

private:

double real;

double image;

public:

complex(double r=0.0,double i=0.0)//构造函数

{

real=r;

image=i;

}

complex operator+(complex c2);//+重载为成员函数

complex operator-(complex c2);//-重载为成员函数

complex operator*(complex c2);//*重载为成员函数

friend complex operator/(complex,complex);///重载为成员函数

bool operator==(complex c2);//==重载为成员函数

void display();

};

complex complex::operator +(complex c2)//重载的实现

{

complex c;

c.real=c2.real+real;

c.image=c2.image+image;

return complex(c.real,c.image);

}

complex complex::operator -(complex c2)//重载的实现

{

complex c;

c.real=real-c2.real;

c.image=image-c2.image;

return complex(c.real,c.image);

}

complex complex::operator *(complex c2)//重载的实现

{

complex c;

c.real=c2.real*real;

c.image=c2.image*image;

return complex(c.real,c.image);

}

complex operator/(complex c1,complex c2)//重载的实现

{

return complex(c1.real/c2.real,c1.image/c2.image);

}

bool complex::operator ==(complex c2)//重载的实现

{

if((real==c2.real)||(image==c2.image))return true;

else return false;

}

void complex::display()

{

cout<

}

void main()

{

complex c1(5.0,4),c2(5.0,4),c3;

cout<

c1.display();

cout<

c2.display();

c3=c1+c2;//使用重载运算符完成复数加法

cout<

c3.display();

c3=c1-c2;//使用重载运算符完成复数减法

cout<

c3.display();

c3=c1*c2;//使用重载运算符完成复数乘法

cout<

c3.display();

c3=c1/c2;//使用重载运算符完成复数除法

cout<

c3.display();

//使用重载运算符完成两个复数的比较

bool result=(c1==c2);

cout<

C. C语言用头文件实现复数加减法

1、_Complex是一种新增的数据类型,用来表示复数。C99 新增了复数类型(_Complex)和虚数类型(_Imaginary)。简单来说,C99 提供了三种复数类型:float _Complex,double _Complex,和 long double _Complex。对于 float _Complex类型的变量来说,它包含两个 float类型的值,一个用于表示复数的实部(real part),另一个用于表示虚部(imaginary part)。类似地,double _Complex 包含两个 double类型的值。C99 也提供了三种虚数类型:float _Imaginary,double _Imaginary,以及 long double _Imaginary。虚数类型只有虚部,没有实部。

2、包含标准头文件 complex.h 后,就可以用 complex来代表 _Complex,用imaginary来代表 _Imaginary,以及用 I来代表虚数单位 i,也就是 -1的平方根。例如:

#include

double _Complex x = 5.2;

double complex y = 5.0 * I;

double complex z = 5.2 – 5.0 * I;

3、注意:_Complex类型对于独立式环境(freestanding environment)来说是可选的。可选的意思是,不强制必须支持这种类型。而所谓独立式环境,是指 C 程序可以在没有操作系统的情况下运行。_Imaginary类型在任何环境下都是可选的。目前的编译器对这两种类型的支持都不太好。

D. 用java设计一个MyComplex,该类可完成复数的加减乘除等运算功能。

public class Complex {

private int realpart;// 实部

private int imaginpart;// 虚部

public Complex(int realpart, int imaginpart) {//有参构造

();

setimaginpart(imaginpart);

setrealpart(realpart);

}

public Complex() {//无参

super();

realpart=0;

imaginpart=0;

}

public int getrealpart() {

return realpart;

}

public void setrealpart(int real) {

realpart = real;

}

public int getimaginpart() {

return imaginpart;

}

public void setimaginpart(int imag) {

imaginpart= imag;

}

public static Complex ComplexAdd(Complex a,Complex b){

int n=a.imaginpart+b.imaginpart;

int m=a.realpart+b.realpart;

Complex result=new Complex(m,n);

return result;

}

/*

*

* 省去其它其他运算

*

*/

public static void playComplex(Complex c){

System.out.println(c.realpart+"+"+c.imaginpart+"i");

}

public static void main(String []args){

// 自己测试

}

}

E. 高二数学复数加减法的一道计算题

ti ne //

F. c语言 复数的加减法 满足手写规则

输入抄输出样例里面的分号

,不确定是真会输出,还是只是分隔输入输出。

常见的应该没有分号。输入1+i

2输出3+i

这个程序,

麻烦在于如何将输入的数据,转为复数。

可以先将输入

存为两个字符串,对每个字符串进行解析,转为复数。

对于每个字符串,先查找是否存在i,这个很简单,如果有,那么一定是最后一个。

如果不存在i,那么虚部为0,将字符串转为实部即可。

如果存在i,那么查找是否存在+或者-,如果不存在,说明没有实部,实部设置为0

如果存在只有-,

同时-为字符串第一个元素,

那么一样没有实部。

如果存在+,或者存在不是首元素的-,说明同时有实部和虚部,区分两部分,分别转换。

转换后,得到复数,简单的相加,得到结果。

输出时,一样要判断实部,虚部是否为0,然后再根据复数规则输出。

这部分相对要简单的多了。

G. java中如何实现复数的加减

不知道是不是 ~

//复数类。

public class Complex

{

private double real,im; //实部,虚部

public Complex(double real, double im) //构造方法

{

this.real = real;

this.im = im;

}

public Complex(double real) //构造方法重载

{

this(real,0);

}

public Complex()

{

this(0,0);

}

public Complex(Complex c) //拷贝构造方法

{

this(c.real,c.im);

}

public boolean equals(Complex c) //比较两个对象是否相等

{

return this.real==c.real && this.im==c.im;

}

public String toString()

{

return "("+this.real+"+"+this.im+"i)";

}

public void add(Complex c) //两个对象相加

{ //改变当前对象,没有返回新对象

this.real += c.real;

this.im += c.im;

}

public Complex plus(Complex c) //两个对象相加,与add()方法参数一样不能重载

{ //返回新创建对象,没有改变当前对象

return new Complex(this.real+c.real, this.im+c.im);

}

public void subtract(Complex c) //两个对象相减

{ //改变当前对象,没有返回新对象

this.real -= c.real;

this.im -= c.im;

}

public Complex minus(Complex c) //两个对象相减,与subtract()方法参数一样不能重载

{ //返回新创建的对象,没有改变当前对象

return new Complex(this.real-c.real, this.im-c.im);

}

}

class Complex__ex

{

public static void main(String args[])

{

Complex a = new Complex(1,2);

Complex b = new Complex(3,5);

Complex c = a.plus(b); //返回新创建对象

System.out.println(a+" + "+b+" = "+c);

}

}

/*

程序运行结果如下:

(1.0+2.0i) + (3.0+5.0i) = (40.0+7.0i)

*/

H. C++的问题:定义描述复数的结构体类型变量,并实现复数之间的加减法运算和输入输出

#include "stdafx.h"

#include

using namespace std;

struct complex //定义一个复数结构体

{

int real; //实数,数据类型根据自己的要求改吧

int imaginary; //虚数,同上

friend complex operator + (complex a, complex b);

//重载运算符“+”,其运算结果为复数,即返回类型为complex

friend complex operator - (complex a, complex b);

//同上

friend ostream & operator << (ostream &out, complex a);

//重载操作符<

void setnumber(int a, int b)

//用于输入的函数,这里重载>>的话会很麻烦,

//你可以自己尝试一下输入an+bi并读取,并没有依次输入系数简单

{

real = a;

imaginary = b;

}

};

complex operator + (complex a, complex b)

{

int x = a.real + b.real; //复数加法:实数加实数

int y = a.imaginary + b.imaginary;//虚数加虚数

complex temp; //声明一个复数temp

temp.setnumber(x, y); //将计算的结果赋给temp

return temp; //并返回

}

complex operator - (complex a, complex b)//同上

{

int x = a.real - b.real;

int y = a.imaginary - b.imaginary;

complex temp;

temp.setnumber(x, y);

return temp;

}

ostream & operator << (ostream &out, complex a)

//这里我分类讨论了一下,为了省略0产生的赘余

{

if (a.real == 0)

return out << a.imaginary << "i";

else if (a.imaginary==0)

return out << a.real;

else

return out << a.real << "+" << a.imaginary << "i";

}

//乘除法的话根据这个自己套公式吧

void main()

//主函数根据要求自己写吧

{

complex a;

complex b;

cout << "请分别输入第一个数的实数和虚数部分" << endl;

int ar, ai;

cin >> ar >> ai;

a.setnumber(ar, ai);

cout << "请输入另一个数的实数和虚数部分" << endl;

int br, bi;

cin >> br >> bi;

b.setnumber(br,bi);

cout << "a+b=" << a + b << endl;

cout << "a-b=" << a - b << endl;

//输入部分可以用for循环和数组来满足多个复数的声明和赋值

}

ea1cff44e9467af75984cdedba7397d5.png

I. 关于C语言的题目:用结构体定义一个复数,并实现复数的加法、减法和乘法。

#include

struct complex

{

int re;

int im;

};

void add(struct complex a, struct complex b, struct complex *c)

{

c->re=a.re+b.re;

c->im=a.im+b.im;

}

void minus(struct complex a, struct complex b, struct complex *c)

{

c->re=a.re-b.re;

c->im=a.im-b.im;

}

int main()

{

struct complex x,y,s,p;

scanf("%d%d",&x.re,&x.im);

scanf("%d%d",&y.re,&y.im);

add(x,y,&s);

printf(" sum=%5d+%5di

",s.re,s.im);

minus(x,y,&p);

printf(" proct=%5d+%5di

",p.re,p.im);

}

ea1cff44e9467af75984cdedba7397d5.png

(9)复数加减题库扩展阅读:

复数运算法则

1、加法交换律:z1+z2=z2+z1

2、乘法交换律:z1×z2=z2×z1

3、加法结合律:(z1+z2)+z3=z1+(z2+z3)

4、乘法结合律:(z1×z2)×z3=z1×(z2×z3)

5、分配律:z1×(z2+z3)=z1×z2+z1×z3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值