首页 > 代码库 > 算法提高 6-17复数四则运算
算法提高 6-17复数四则运算
算法提高 6-17复数四则运算
时间限制:1.0s 内存限制:512.0MB
设计复数库,实现基本的复数加减乘除运算。
输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。
注意考虑特殊情况,无法计算时输出字符串"error"。
输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。
注意考虑特殊情况,无法计算时输出字符串"error"。
样例输入
2 4 * -3 2
样例输出
-14-8i
样例输入
3 -2 + -1 3
样例输出
2+1i
有一组数据就是通不过。
#include <iostream> #include <cstdio> #include <vector> #include <queue> #include <cstring> #include <algorithm> #include <cstdlib> #define for(i,x,n) for(int i=x;i<n;i++) #define ll long long int #define INF 0x3f3f3f3f #define MOD 1000000007 #define MAX_N 50005 using namespace std; int main() { //freopen("data.txt", "r", stdin); //freopen("data.out", "w", stdout); double a,b,c,d; char cc; scanf("%lf %lf",&a,&b); getchar(); scanf("%c",&cc); scanf("%lf %lf",&c,&d); if(cc==‘+‘){ if(b+d>0){ printf("%g+%gi",a+c,b+d); }else if(b+d<0){ printf("%g%gi",a+c,b+d); }else if(b+d==0){ printf("%g",a+c); } } if(cc==‘-‘){ if(b-d>0){ printf("%lf+%lfi",a-c,b-d); }else if(b-d<0){ printf("%lf%lfi",a-c,b-d); }else if(b-d==0){ printf("%lf",a-c); } } if(cc==‘*‘){ if(a*c-b*d==0&&a*d+b*c!=0){ printf("%gi",a*d+b*c); }else if(a*d+b*c==0&&a*c+b*d!=0){ printf("%g",a*c-b*d); }else{ if(a*d+b*c<0){ printf("%g%gi",a*c-b*d,a*d+b*c); }else{ printf("%g+%gi",a*c-b*d,a*d+b*c); } } } if(cc==‘/‘){ double shi=(a*c+b*d)/(c*c+d*d); double xu=(b*c-a*d)/(c*c+d*d); if(c==0&&d==0){ printf("error\n"); }else{ if(xu>0){ printf("%g+%gi",shi,xu); } if(xu==0){ printf("%g",shi); }else{ printf("%g%gi",shi,xu); } } } //fclose(stdin); //fclose(stdout); return 0; } // 3 3 * 3 3
算法提高 6-17复数四则运算
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。