复数四则运算
复数四则运算
整体思路
先计算出加减乘除后实部和虚部的值,然后编写输出格式函数
函数名称 | 函数说明 |
---|---|
用于输出=的前部分 | |
printp | 输出等号的结果部分 |
#include<stdio.h>
#include<math.h>
void print(double a,double b);//输出输入部分
void printp(double a,double b);//输出结果部分
int main(void)
{
double a,b,c,d;
double sum1,sum2;
double del1,del2;
double mul1,mul2;
double div1,div2;
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
sum1=a+c;//加
sum2=b+d;
del1=a-c;//减
del2=b-d;
mul1=a*c-b*d;//乘
mul2=b*c+a*d;
div1=(a*c+b*d)/(c*c+d*d);//除
div2=(b*c-a*d)/(c*c+d*d);
print(a,b);
printf(" + ");
print(c,d);
printf(" = ");
printp(sum1,sum2);
print(a,b);
printf(" - ");
print(c,d);
printf(" = ");
printp(del1,del2);
print(a,b);
printf(" * ");
print(c,d);
printf(" = ");
printp(mul1,mul2);
print(a,b);
printf(" / ");
print(c,d);
printf(" = ");
printp(div1,div2);
return 0;
}
void print(double a,double b)
{
if(b<0)
printf("(%.1f%.1fi)",a,b);//如果是负数不用加符号
else
printf("(%.1f+%.1fi)",a,b);//如果虚部>0,需要加+
}
void printp(double a,double b)
{
if(b<0.05&&b>-0.05)//虚部为0的情况 //实部和虚部都为0的情况包含在1,2中
printf("%.1f",a);
else if(a<0.05&&a>-0.05)//实部为0的情况
printf("%.1fi",b);
else if(b<0)//虚部为-的情况
printf("%.1f%.1fi",a,b);
else//虚部为正的情况
printf("%.1f+%.1fi",a,b);
printf("\n");
}
还没有评论,来说两句吧...