码迷,mamicode.com
首页 > 其他好文 > 详细

结构-06. 复数四则运算(15)

时间:2015-02-20 20:50:13      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

本题要求编写程序,计算2个复数的和、差、积、商。

输入格式:

输入在一行中按照“a1 b1 a2 b2”的格式给出2个复数C1=a1+b1*i和C2=a2+b2*i的实部和虚部。题目保证C2不为0。

输出格式:

分别在4行中按照“(a1+b1i) 运算符 (a2+b2i) = 结果”的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0。

输入样例1:

2 3.08 -2.04 5.06

输出样例1:

(2.0+3.1i) + (-2.0+5.1i) = 8.1i
(2.0+3.1i) - (-2.0+5.1i) = 4.0-2.0i
(2.0+3.1i) * (-2.0+5.1i) = -19.7+3.8i
(2.0+3.1i) / (-2.0+5.1i) = 0.4-0.6i

输入样例2:

1 1 -1 -1.01

输出样例2:

(1.0+1.0i) + (-1.0-1.0i) = 0.0
(1.0+1.0i) - (-1.0-1.0i) = 2.0+2.0i
(1.0+1.0i) * (-1.0-1.0i) = -2.0i
(1.0+1.0i) / (-1.0-1.0i) = -1.0

 

 

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <iostream>
  4 #include <string.h>
  5 #include <string>
  6 #include <math.h>
  7 #define EPSILON 0.1
  8 
  9 using namespace::std; 
 10 int shuchu(double a,double b,double c,double d,char fuhao)
 11 {
 12     //if(b<EPSILON&&b>-EPSILON)b=0;
 13     //if(d<EPSILON&&d>-EPSILON)d=0;
 14     if(b<0)
 15     {
 16         if(d<0)
 17         {
 18             printf("(%.1f%.1fi) %c (%.1f%.1fi) = ",a,b,fuhao,c,d);
 19         }
 20         else
 21         {
 22             printf("(%.1f%.1fi) %c (%.1f+%.1fi) = ",a,b,fuhao,c,d);
 23         }
 24     }
 25     else
 26     {
 27         if(d<0)
 28         {
 29             printf("(%.1f+%.1fi) %c (%.1f%.1fi) = ",a,b,fuhao,c,d);
 30         }
 31         else
 32         {
 33             printf("(%.1f+%.1fi) %c (%.1f+%.1fi) = ",a,b,fuhao,c,d);
 34         }
 35     }
 36     return 0;
 37 }
 38 
 39 typedef struct {
 40     double shi;
 41     double xu;
 42 }fushu;
 43 
 44 void printResult(fushu c) {  
 45     if(fabs(c.shi)<EPSILON)c.shi=0;
 46     if(fabs(c.xu)<EPSILON)c.xu=0;  
 47     if(c.shi == 0 && c.xu == 0)  
 48         printf("%.1f\n", c.shi); 
 49     if(c.shi == 0 && c.xu)  
 50         printf("%.1fi\n", c.xu);   
 51     if(c.shi && c.xu > 0)  
 52         printf("%.1f+%.1fi\n", c.shi, c.xu);  
 53     if(c.shi && c.xu < 0)  
 54         printf("%.1f%.1fi\n", c.shi, c.xu);  
 55     if(c.shi && c.xu == 0)  
 56         printf("%.1f\n", c.shi);  
 57     
 58 }  
 59 
 60 int main(){
 61     fushu a[2],temp;
 62     for(int i=0;i<2;i++)
 63     {
 64     scanf("%lf %lf",&a[i].shi,&a[i].xu);
 65     }
 66     
 67    //加法 
 68     shuchu(a[0].shi,a[0].xu,a[1].shi,a[1].xu,+);
 69     temp.shi=a[0].shi+a[1].shi;
 70     temp.xu=a[0].xu+a[1].xu;
 71     //printResult(temp);
 72     if(fabs(temp.shi)<EPSILON)
 73     {
 74         if(temp.xu<EPSILON&&temp.xu>-EPSILON)
 75         {
 76          printf("0.0\n");
 77         }
 78         else
 79         {
 80         printf("%.1fi\n",temp.xu);    
 81         }
 82     }else
 83     {
 84        if(temp.xu<EPSILON&&temp.xu>-EPSILON)
 85         {
 86          printf("%.1f\n",temp.shi);
 87         }
 88         else if(temp.xu>=EPSILON)
 89         {
 90         printf("%.1f+%.1fi\n",temp.shi,temp.xu);    
 91         }
 92         else
 93         {
 94         printf("%.1f%.1fi\n",temp.shi,temp.xu);    
 95         }
 96     }
 97     
 98     shuchu(a[0].shi,a[0].xu,a[1].shi,a[1].xu,-);
 99     temp.shi=a[0].shi-a[1].shi;
100     temp.xu=a[0].xu-a[1].xu;
101     //printResult(temp);
102      if(temp.shi<EPSILON&&temp.shi>-EPSILON)
103     {
104         if(temp.xu<EPSILON&&temp.xu>-EPSILON)
105         {
106          printf("0.0\n");
107         }
108         else
109         {
110         printf("%.1fi\n",temp.xu);    
111         }
112     }else
113     {
114         if(temp.xu<EPSILON&&temp.xu>-EPSILON)
115         {
116          printf("%.1f\n",temp.shi);
117         }
118         else if(temp.xu>=EPSILON)
119         {
120         printf("%.1f+%.1fi\n",temp.shi,temp.xu);    
121         }
122         else
123         {
124         printf("%.1f%.1fi\n",temp.shi,temp.xu);    
125         }
126     }
127     
128     shuchu(a[0].shi,a[0].xu,a[1].shi,a[1].xu,*);
129     
130     temp.shi=a[0].shi*a[1].shi-a[0].xu*a[1].xu;
131     temp.xu =a[0].shi*a[1].xu+a[0].xu*a[1].shi;
132     //printResult(temp);
133    if(temp.shi<EPSILON&&temp.shi>-EPSILON)
134     {
135         if(temp.xu<EPSILON&&temp.xu>-EPSILON)
136         {
137          printf("0.0\n");
138         }
139         else
140         {
141         printf("%.1fi\n",temp.xu);    
142         }
143     }else
144     {
145         if(temp.xu<EPSILON&&temp.xu>-EPSILON)
146         {
147          printf("%.1f\n",temp.shi);
148         }
149         else if(temp.xu>=EPSILON)
150         {
151         printf("%.1f+%.1fi\n",temp.shi,temp.xu);    
152         }
153         else
154         {
155         printf("%.1f%.1fi\n",temp.shi,temp.xu);    
156         }
157     }
158     
159     shuchu(a[0].shi,a[0].xu,a[1].shi,a[1].xu,/);  
160     temp.shi=(a[0].shi*a[1].shi+a[0].xu*a[1].xu)/(a[1].shi*a[1].shi+a[1].xu*a[1].xu);
161     temp.xu=(a[0].xu*a[1].shi-a[0].shi*a[1].xu)/(a[1].shi*a[1].shi+a[1].xu*a[1].xu);
162     //printResult(temp);
163 if(temp.shi<EPSILON&&temp.shi>-EPSILON)
164     {
165         if(temp.xu<EPSILON&&temp.xu>-EPSILON)
166         {
167          printf("0.0\n");
168         }
169         else
170         {
171         printf("%.1fi\n",temp.xu);    
172         }
173     }else
174     {
175         if(temp.xu<EPSILON&&temp.xu>-EPSILON)
176         {
177          printf("%.1f\n",temp.shi);
178         }
179         else if(temp.xu>=EPSILON)
180         {
181         printf("%.1f+%.1fi\n",temp.shi,temp.xu);    
182         }
183         else
184         {
185         printf("%.1f%.1fi\n",temp.shi,temp.xu);    
186         }
187     }
188     return 0;
189 }

 

结构-06. 复数四则运算(15)

标签:

原文地址:http://www.cnblogs.com/ligen/p/4296667.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!