OpenJudge

1:复数的加减乘法

总时间限制:
1000ms
内存限制:
32767kB
描述

我们把形如a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。

复数的四则运算规定为:

加法法则:(a+bi)+(c+di)=(a+c)+(b+d)i

减法法则:(a+bi)-(c+di)=(a-c)+(b-d)i

乘法法则:(a+bi)·(c+di)=(ac-bd)+(bc+ad)i

除法法则:(a+bi)/(c+di)=[(ac+bd)/(c²+d²)]+[(bc-ad)/(c²+d²)]i

写一个程序,实现复数的加法,减法和乘法。

#include <stdio.h>

struct complex
{
	double real;
	double imag;
};
//从键盘读入一个复数的实部和虚部
void input(struct complex *p);
//向屏幕输出一个复数
void show(struct complex *p);
//2个复数相加,返回一个复数
struct complex add(struct complex *p1, struct complex *p2);
//2个复数相减,返回一个复数
struct complex sub(struct complex *p1, struct complex *p2);
//2个复数相乘,返回一个复数
struct complex mul(struct complex *p1, struct complex *p2);

int main()
{
	struct complex a, b, c;
	input(&a);
	input(&b);
	c = add(&a, &b);
	show(&c);
	c = sub(&a, &b);
	show(&c);
	c = mul(&a, &b);
	show(&c);
	return 0;
}

void show(struct complex *p)
{
	printf("%.3lf + %.3lfi\n", p->real, p->imag);
}
// 在此处补充你的代码
输入
2行。每行是一个复数的实部和虚部的值。
输出
2个复数的和,差,积。所有浮点数输出到小数点后3位。
样例输入
5.7 8.9
3 4
样例输出
8.700 + 12.900i
2.700 + 4.900i
-18.500 + 49.500i
提示
只需要写出
//从键盘读入一个复数的实部和虚部
void input(struct complex *p);
//2个复数相加,返回一个复数
struct complex add(struct complex *p1, struct complex *p2);
//2个复数相减,返回一个复数
struct complex sub(struct complex *p1, struct complex *p2);
//2个复数相乘,返回一个复数
struct complex mul(struct complex *p1, struct complex *p2);
的函数定义。
全局题号
12583
添加于
2018-01-02
提交次数
78
尝试人数
50
通过人数
48