资源限制
时间限制:1.0s 内存限制:512.0MB
设计复数库,实现基本的复数加减乘除运算。
输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。
注意考虑特殊情况,无法计算时输出字符串"error"。
样例输入
2 4 * -3 2
样例输出
-14-8i
样例输入
3 -2 + -1 3
样例输出
2+1i
分析:
这道题目比较简单,只需分类讨论即可,注意除法除数为0是不能计算的。
#include<iostream>
using namespace std;
int a[2];
int b[2];
char op;
void jia()
{
int aa;
int bb;
aa=a[0]+b[0];
bb=a[1]+b[1];
if(bb>0)
cout<<aa<<"+"<<bb<<"i";
else if(bb<0)
cout<<aa<<bb<<"i";
else
cout<<aa;
}
void jian()
{
int aa;
int bb;
aa=a[0]-b[0];
bb=a[1]-b[1];
if(bb>0)
cout<<aa<<"+"<<bb<<"i";
else if(bb<0)
cout<<aa<<bb<<"i";
else
cout<<aa;
}
void cheng()
{
int aa;
int bb;
aa=a[0]*b[0]-a[1]*b[1];
bb=a[0]*b[1]+a[1]*b[0];
if(bb>0)
cout<<aa<<"+"<<bb<<"i";
else if(bb<0)
cout<<aa<<bb<<"i";
else
cout<<aa;
}
void chu()
{
int aa;
int bb;
int cc;
if(b[0]==0&&b[1]==0)
cout<<"error";
else
{
aa=a[0]*b[0]+a[1]*b[1];
bb=a[1]*b[0]-a[0]*b[1];
cc=b[0]*b[0]+b[1]*b[1];
aa=aa/cc;
bb=bb/cc;
if(bb>0)
cout<<aa<<"+"<<bb<<"i";
else if(bb<0)
cout<<aa<<bb<<"i";
else
cout<<aa;
}
}
int main()
{
cin>>a[0]>>a[1]>>op>>b[0]>>b[1];
switch(op)
{
case '+':jia();break;
case '-':jian();break;
case '*':cheng();break;
case '/':chu();break;
}
return 0;
}
由于蓝桥杯的测试提交系统一直有问题,下图附上部分测试结果。
有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。