用结构体表示一个复数,编写实现复数的加法、乘法、输入和输出的函数,并测试这些函数,在主函数中定义结
构体变量,并调用以上函数进行运算。加法规则:(a+bi)+(c+di)=(a+c)+(b+d)i乘法规则:(a+bi)*(c+di)=(ac–bd)+(bc+ad)i输入...
构体变量,并调用以上函数进行运算。
加法规则: ( a + bi ) + (c + di) = (a+c) + (b+d)i
乘法规则:( a + bi ) * (c + di) = ( ac – bd ) +( bc + ad)i
输入规则:分别输入实部和虚部
输出规则:如果a为实部,b为虚部,则输出样式为: ( a , b ) 展开
加法规则: ( a + bi ) + (c + di) = (a+c) + (b+d)i
乘法规则:( a + bi ) * (c + di) = ( ac – bd ) +( bc + ad)i
输入规则:分别输入实部和虚部
输出规则:如果a为实部,b为虚部,则输出样式为: ( a , b ) 展开
2个回答
展开全部
#include "stdio.h"
struct complex_num
{
double real;
double image;
};
complex_num add(complex_num a,complex_num b)
{
complex_num c;
c.real=a.real+b.real;
c.image=a.image+b.image;
return c;
}
complex_num cheng(complex_num a,complex_num b)
{
complex_num c;
c.real=a.real*b.real-a.image*b.image;
c.image=a.real*b.image+a.image*b.real;
return c;
}
void main()
{
complex_num a,b,c,d;
printf("请输入复数a的实部和虚部:");
scanf("%lf %lf",&a.real,&a.image);
printf("请输入复数b的实部和虚部:");
scanf("%lf %lf",&b.real,&b.image);
c=cheng(a,b);
d=add(a,b);
printf("实数a加上实数b后新的实数的实部虚部为:%d ,%d\n",d.real,d.image);
printf("实数a乘以实数b后新的实数的实部虚部为:%d ,%d\n",c.real,c.image);
}
struct complex_num
{
double real;
double image;
};
complex_num add(complex_num a,complex_num b)
{
complex_num c;
c.real=a.real+b.real;
c.image=a.image+b.image;
return c;
}
complex_num cheng(complex_num a,complex_num b)
{
complex_num c;
c.real=a.real*b.real-a.image*b.image;
c.image=a.real*b.image+a.image*b.real;
return c;
}
void main()
{
complex_num a,b,c,d;
printf("请输入复数a的实部和虚部:");
scanf("%lf %lf",&a.real,&a.image);
printf("请输入复数b的实部和虚部:");
scanf("%lf %lf",&b.real,&b.image);
c=cheng(a,b);
d=add(a,b);
printf("实数a加上实数b后新的实数的实部虚部为:%d ,%d\n",d.real,d.image);
printf("实数a乘以实数b后新的实数的实部虚部为:%d ,%d\n",c.real,c.image);
}
展开全部
#包括
使用命名空间std;
复数
{
双实的,虚;
复数()
{
真实的=假想= 0.0;
}
复数运算符+(复数)
{
复数吨;
t.real = s.real +真实的;,
t.imaginary = s.imaginary +虚;
返回吨;
}
复数运营商(复数)
{
复数吨; t.real =真实s.real;
t.imaginary =虚s.imaginary的;
返回吨;
}
复数运算符*(复数)
{
复数吨;
t.real = s.real *实时s.imaginary的假想;
t.imaginary =真正的* s.imaginary +虚*。真实的;
返回吨;
}
~~复数()
{
}
};
istream的&操作符> >(istream的,复数)
printf(“输入的实部:\ N”);
scanf函数(“LF”,s.real)
的printf(“请输入虚部:\ N”);
scanf函数(“%LF”,s.imaginary);
回报; />}
ostream的运算符<<(ostream的OU,复数)
{
的printf(“%.4 LF +%.4 LFI”,s.real,S。虚数);
回报瓯;
}
的main()
{
复数A,B,C;
CIN >> A >> B ;
C = A + B;
法院<< C << endl;
C = AB;
法院<< C << endl;
C =一* B;
COUT << C << endl;
系统(“暂停”);
}
使用命名空间std;
复数
{
双实的,虚;
复数()
{
真实的=假想= 0.0;
}
复数运算符+(复数)
{
复数吨;
t.real = s.real +真实的;,
t.imaginary = s.imaginary +虚;
返回吨;
}
复数运营商(复数)
{
复数吨; t.real =真实s.real;
t.imaginary =虚s.imaginary的;
返回吨;
}
复数运算符*(复数)
{
复数吨;
t.real = s.real *实时s.imaginary的假想;
t.imaginary =真正的* s.imaginary +虚*。真实的;
返回吨;
}
~~复数()
{
}
};
istream的&操作符> >(istream的,复数)
printf(“输入的实部:\ N”);
scanf函数(“LF”,s.real)
的printf(“请输入虚部:\ N”);
scanf函数(“%LF”,s.imaginary);
回报; />}
ostream的运算符<<(ostream的OU,复数)
{
的printf(“%.4 LF +%.4 LFI”,s.real,S。虚数);
回报瓯;
}
的main()
{
复数A,B,C;
CIN >> A >> B ;
C = A + B;
法院<< C << endl;
C = AB;
法院<< C << endl;
C =一* B;
COUT << C << endl;
系统(“暂停”);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询