题目
复数可以写成A+Bi的形式,其中A是实部,B是虚部。
从键盘输入两个复数,做加法或乘法并输出结果。
例如
输入:4.2 2.5 2 -1.5 +
输出:6.2 1.0
输入:2.5 3 -1 2.4 *
输出:-9.7 3.0
输入输出格式
输入描述:
输入两个复试以及+或*号。
输出描述:
输出运算结果,并保留1位小数。
代码:
#include <iostream>
using namespace std;
struct node {
float a;//表示数的实部
float bi;//表示数的虚部
};
float add(struct node A,struct node B) {
//cout.precision(02);
//cout << A.a + B.a << ' ' << A.bi + B.bi << endl;
printf("%.1f %.1f", A.a + B.a, A.bi + B.bi);
return 0;
}
float multi(struct node A, struct node B) {
float a = A.a * B.a - A.bi * B.bi;//实部,i*i==-1,所以是'-'号,即负负得正
float b = A.a * B.bi + A.bi * B.a;//虚部
printf("%.1f %.1f", a, b);
return 0;
}
int main() {
struct node A,B;
cin >> A.a >> A.bi >> B.a >> B.bi;//输入两个复数
char ch;
cin >> ch;
if (ch == '+') {
add(A, B);
}
if (ch == '*') {
multi(A, B);
}
}
运行结果: