6-17复数四则运算
2015-02-27 00:34
253 查看
设计复数库,实现基本的复数加减乘除运算。
输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。
注意考虑特殊情况,无法计算时输出字符串"error"。
样例输入
2 4 * -3 2
样例输出
-14-8i
样例输入
3 -2 + -1 3
样例输出
2+1i
不知道为什么如果把输入写成函数就不对 末尾会有小数出现
输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。
注意考虑特殊情况,无法计算时输出字符串"error"。
样例输入
2 4 * -3 2
样例输出
-14-8i
样例输入
3 -2 + -1 3
样例输出
2+1i
不知道为什么如果把输入写成函数就不对 末尾会有小数出现
#include <iostream> using namespace std; struct FuShu{ double shi; double xu; }; FuShu Jia(FuShu a,FuShu b){ FuShu rt; rt.shi = a.shi + b.shi; rt.xu = a.xu + b.xu; return rt; } FuShu Jian(FuShu a,FuShu b) { FuShu rt; rt.shi = a.shi - b.shi; rt.xu = a.xu - b.xu; return rt; } FuShu Sheng(FuShu a,FuShu b) { FuShu rt; rt.shi = a.shi*b.shi - a.xu*b.xu; rt.xu = a.shi*b.xu + a.xu*b.shi; return rt; } FuShu Chu(FuShu a,FuShu b) { FuShu rt,c; double z = b.shi*b.shi+b.xu*b.xu; c.shi=b.shi; c.xu=-b.xu; rt=Sheng(a,c); rt.shi/=z; rt.xu/=z; return rt; } void Cin(FuShu a) { cin>>a.shi>>a.xu; } void Cout(FuShu a) { if(a.shi==0) { if(a.xu=0) { cout<<0<<endl; }else{ cout<<a.xu<<'i'<<endl; } }else{ cout<<a.shi; if(a.xu==0) { cout<<endl; }else if(a.xu<0){ cout<<a.xu<<'i'<<endl; }else if(a.xu>0){ cout<<'+'<<a.xu<<'i'<<endl; } } } int main() { FuShu a,b,c; char e; cin>>a.shi>>a.xu; cin>>e; cin>>b.shi>>b.xu; if(e=='+') { c=Jia(a,b); }else if(e=='-') { c=Jian(a,b); }else if(e=='*') { c=Sheng(a,b); }else if(e=='/') { if(b.shi==0&&b.xu==0) { cout<<"error"<<endl; return 0; } c=Chu(a,b); } //cout<<a.shi<<endl; //cout<<c.shi<<endl; Cout(c); return 0; }
相关文章推荐
- 算法提高 6-17复数四则运算
- asp.net(c#)复数类(复数加减乘除四则运算)
- 算法提高 6-17复数四则运算
- 算法提高 6-17复数四则运算
- 算法提高 6-17复数四则运算
- 复数的四则运算
- 算法提高 6-17复数四则运算
- 实现复数的加减乘除四则运算的C#类(已测成功)
- 复数的四则运算(模板类)
- 算法笔记_156:算法提高 6-17复数四则运算(Java)
- 算法提高 6-17复数四则运算 蓝桥杯
- 蓝桥杯 6-17复数四则运算
- Chuck语言学习笔记——4.复数,四则运算与类型转换
- 6-17复数四则运算
- java求复数四则运算,习题5.23(最终版)
- 复数的四则运算
- 【复数的四则运算(C++)】
- 算法提高 6-17复数四则运算
- 第7周任务3(使用类模板,实现复数的四则运算)
- 5-17编写一个类实现复数的运算