交换复数
请编写函数,完成复数的交换。
函数定义
// 交换复数
void ComplexSwap(COMPLEX *x, COMPLEX *y);
函数说明
参数 x、y 分别是指向两个复数的指针。函数交换 x 和 y 所指两个复数的值。
示例
输入
4.9+3.8i
2.5-0.3i
输出
2.5-0.3i
4.9+3.8i
代码如下:
#include <stdio.h>
typedef struct
{
double rp;
double ip;
char op;
}COMPLEX;
// 交换复数
void ComplexSwap(COMPLEX *x, COMPLEX *y)
{
COMPLEX temp;
temp.rp=x->rp;
temp.ip=x->ip;
x->rp=y->rp;
x->ip=y->ip;
y->rp=temp.rp;
y->ip=temp.ip;
}
void ComplexInput(COMPLEX *complex)
{
double i,j;
char op;
scanf("%lf%c%lfi",&i,&op,&j);
complex->rp=i;
if(op=='+')
{
complex->ip=j;
complex->op='+';
}
else
complex->ip=-j;
}
void ComplexOutput(const COMPLEX *complex)
{
if(complex->ip>=0)
printf("%g+%gi",complex->rp,complex->ip);
else
printf("%g%gi",complex->rp,complex->ip);
}
int main()
{
COMPLEX a, b;
ComplexInput(&a);
ComplexInput(&b);
ComplexSwap(&a, &b);
ComplexOutput(&a);
putchar('\n');
ComplexOutput(&b);
putchar('\n');
return 0;
}
如果代码有问题,欢迎大家指正。