楼上几位光说不写~~~~~~~
#include
void sddf(int x1,int y1,int x2,int y2);
void subf(int x1,int x2,int y1,int y2);
void mulf(int x1,int x2,int y1,int y2);
void prtf(int a,int b);
void main()
{
int x1,y1,x2,y2;
printf("输入复数a的实部x1=");
scanf("%d",&x1);
printf("输入复数a的虚部y1=");
scanf("%d",&y1);
printf("输入复数b的实部x2=");
scanf("%d",&x2);
printf("输入复数b的虚部y2=");
scanf("%d",&y2);
printf("\n");
sddf(x1,y1,x2,y2);
subf(x1,y1,x2,y2);
mulf(x1,y1,x2,y2);
}
void prtf(int a,int b) /*输出函数*/
{
printf("%d",a);printf("+");printf("(%d",b);printf("i)\n");
}
void sddf(int x1,int y1,int x2,int y2) /*加运算*/
{
int a,b;
a=x1+x2;
b=y1+y2;
printf("复数之和为:");
prtf(a,b);
}
void subf(int x1,int x2,int y1,int y2) /*减运算*/
{
int a,int b;
a=x1-x2;
b=y1-y2;
printf("复数之差为");
prtf(a,b);
}
void mulf(int x1,int x2,int y1,int y2) /*乘积运算*/
{
int a,b;
a=x1*x2-y1*y2;
b=x1*y2+x2*y1;
printf("复数之积为:");
prtf(a,b);
}
举个例子吧,
1+2j
和
2+
3j
求和就是
(1+2)+(2+3)j=3+5j
求和(差)就是实部加(减)实部
虚部加(减)虚部
求积的话
先要知道j*j=-1(不知道打平方
呵呵)
举例子就是
以上面的例子吧
(1+2j
)*(2+3j)=1*2+1*3j+2j*3j=2+3j+2j×2+(-6)=-4+7j
知道了吗?
举个例子吧, 1+2j 和 2+ 3j 求和就是 (1+2)+(2+3)j=3+5j 求和(差)就是实部加(减)实部 虚部加(减)虚部
求积的话 先要知道j*j=-1(不知道打平方 呵呵) 举例子就是 以上面的例子吧 (1+2j )*(2+3j)=1*2+1*3j+2j*3j=2+3j+2j×2+(-6)=-4+7j 知道了吗? 如果要是求商的话就先把分母有理化,利用平方差公式,如(1+2j)/(2+3j)分子分母都乘以(2-3j) 分母就变成了2×2-3j ×3j=4-(-9)=13 分子知道算了吧? 呵呵
强制转换
定义一个d类型的数,直接赋给一个int类型的数;
再用d类型的减去int型,可得小数部分,
剩下的自己完成了。。。
w .o .c=/a./o-sh=ui zhi dao