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循环和数组来满足多个复数的声明和赋值
}
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);
}
(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