#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
原文:http://www.cnblogs.com/TWS-YIFEI/p/6384412.html