c语言 虚数的四则运算 高手帮帮忙!高手们帮帮忙吧 入门新手实在不会了 用结构体 做一个虚数的四则运算 写add, subtract, multiple, divide四个函数 (麻烦帮忙写一下简单的说明)谢谢

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 13:53:12

c语言 虚数的四则运算 高手帮帮忙!高手们帮帮忙吧 入门新手实在不会了 用结构体 做一个虚数的四则运算 写add, subtract, multiple, divide四个函数 (麻烦帮忙写一下简单的说明)谢谢
c语言 虚数的四则运算 高手帮帮忙!
高手们帮帮忙吧 入门新手实在不会了
用结构体 做一个虚数的四则运算 写add, subtract, multiple, divide四个函数
(麻烦帮忙写一下简单的说明)谢谢谢谢了
a1 : 1+3i
a2 : 5-3.5i
a1 + a2 = 6.0000 - 0.5000i
a1 - a2 = -4.0000 + 6.5000i
a1 * a2 = 15.5000 +11.5000i
a1 / a2 = -0.1477 + 0.4966i

c语言 虚数的四则运算 高手帮帮忙!高手们帮帮忙吧 入门新手实在不会了 用结构体 做一个虚数的四则运算 写add, subtract, multiple, divide四个函数 (麻烦帮忙写一下简单的说明)谢谢
回答的也太快了吧!我刚输完就有这么多了!
还好我这是纯c语言版.
输入数据是实属部分和虚数部分用逗号隔开.
#include
#include
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;
}