新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
高手们帮帮忙吧
创新互联建站是专业的紫金网站建设公司,紫金接单;提供网站设计、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行紫金网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
入门新手实在不会了
用结构体
做一个虚数的四则运算
写add,
subtract,
multiple,
divide四个函数
(麻烦帮忙写一下简单的说明)谢谢谢谢了a1
:
1+3ia2
:
5-3.5ia1
+
a2
=
6.0000
-
0.5000ia1
-
a2
=
-4.0000
+
6.5000ia1
*
a2
=
15.5000
+11.5000ia1
/
a2
=
-0.1477
+
0.4966i
_Complex关键字可以提供比较方便的复数运算,例如:
#include complex.h
double imaginary z=5.3I
注意事项:
1. 每个程序中一定包含main()函数,尽管C语言中对函数命名没有限制。
2. printf函数永远不会自动换行,只能用\n来实现, 回车键进行的换行在编译中会出现错误信息。
3. 在vs2008中编译,测试需要加 system("pause");来暂停dos自动退出导致的printf无法显示。
4. 所有自定义变量必须声明才能使用。
扩展资料:
在数学中,虚数是对实数系的扩展。利用复数可以构建四维坐标系,四维坐标系是三维实数坐标系与三维虚数坐标系组合而成的。三维实数坐标系上的点与四维复数坐标系存在映射对应关系,每一个实数坐标点对应两个不同的四维坐标点。因此,虚数只有在四维坐标中才具有现实的数值意义。
我们可以在平面直角坐标系中画出虚数系统。如果利用横轴表示全体实数,那么纵轴即可表示虚数。整个平面上每一点对应着一个复数,称为复平面。横轴和纵轴也改称为实轴和虚轴。在此时,一点P坐标为P(a,bi),将坐标乘上i即点绕圆心逆时针旋转90度。
虚数单位“i”首先为瑞士数学家欧拉所创用,到德国数学家高斯提倡才普遍使用。
回答的也太快了吧!我刚输完就有这么多了!
还好我这是纯c语言版。
输入数据是实属部分和虚数部分用逗号隔开。
#include stdio.h
#include stdlib.h
typedef struct
{
double real; /*实数部分*/
double vir; /*虚数部分*/
}COMPLEX;
COMPLEX add(COMPLEX a,COMPLEX b);
COMPLEX substract(COMPLEX a,COMPLEX b);
COMPLEX multiple(COMPLEX a,COMPLEX b);
COMPLEX divide(COMPLEX a,COMPLEX b);
void printC(COMPLEX n)
{
if((n.vir - 0.00) 0)
printf("(%.4lf%.4lfi)",n.real,n.vir);
else
printf("(%.4lf+%.4lfi)",n.real,n.vir);
}
void main()
{
COMPLEX a,b;
char c;
printf("input real and virtual of complex number a:");
scanf("%lf,%lf",a.real,a.vir);
fflush(stdin);
printf("input real and virtual of complex number b:");
scanf("%lf,%lf",b.real,b.vir);
c = '+';
printC(a); printf(" %c ",c); printC(b); printf(" = ");
printC(add(a,b));
putchar('\n');
c = '-';
printC(a); printf(" %c ",c); printC(b); printf(" = ");
printC(substract(a,b));
putchar('\n');
c = '-';
printC(a); printf(" %c ",c); printC(b); printf(" = ");
printC(multiple(a,b));
putchar('\n');
c = '/';
printC(a); printf(" %c ",c); printC(b); printf(" = ");
printC(divide(a,b));
putchar('\n');
system("pause");
}
COMPLEX add(COMPLEX a,COMPLEX b)
{
COMPLEX c;
c.real = a.real + b.real;
c.vir = a.vir + b.vir;
return c;
}
COMPLEX substract(COMPLEX a,COMPLEX b)
{
COMPLEX c;
c.real = a.real - b.real;
c.vir = a.vir - b.vir;
return c;
}
COMPLEX multiple(COMPLEX a,COMPLEX b)
{
COMPLEX c;
c.real = a.real * b.real - a.vir * b.vir;
c.vir = a.vir * b.real + a.real * b.vir;
return c;
}
COMPLEX divide(COMPLEX a,COMPLEX b)
{
COMPLEX c;
double den = b.real * b.real + b.vir * b.vir;
c.real = (a.real * b.real + a.vir * b.vir) / den;
c.vir = (a.vir * b.real - a.real * b.vir) / den;
return c;
}
#includestdio.h
void xushu(int a,int b,int c,int d)
{
int num1,num2;
num1=a*d+b*c;
num2=-(a*c)+b*d;
if(num20)
printf("(%di+%d)(%di+%d)=%di+%d",a,b,c,d,num1,num2);
else
printf("(%di+%d)(%di+%d)=%di%d",a,b,c,d,num1,num2);
}
int main()
{
int a,b,c,d;
printf("input number1:\n");
scanf("%di+%d",a,b);
printf("input number2:\n");
scanf("%di+%d",c,d);
xushu(a,b,c,d);
}
你可以定义一个结构体,结构体成员包括虚数的实部和虚部,虚部。分开来处理,实部简单,虚部首先考虑系数的处理,然后条件判断,每次遇到 i*i 就给系数乘以 -1,细节部分还要你自己去考虑。
这道题如果是C++的话可以直接用运算符重载来做!