📄 复数运算.txt
字号:
#include "stdio.h"
#include "math.h"
typedef struct{
float x;
float y;
}num;
void menu(){
printf("*****************请选择功能*****************\n");
printf("* 1.生成复数 *\n");
printf("* 2.复数求和 *\n");
printf("* 3.复数求差 *\n");
printf("* 4.复数求积 *\n");
printf("* 5.分离实部和虚部 *\n");
printf("* 6.退出 *\n");
printf("********************************************\n");
}
num Init(){
num n;
printf("请输入实部:\n");
scanf("%f",&n.x);
printf("请输入虚部:\n");
scanf("%f",&n.y);
return n;
}
void produce(num a)
{
if(a.y<0)printf("%f-i%f\n",a.x,-a.y);
else printf("%f+i%f\n",a.x,a.y);
}
void add(num a,num b)
{
num c;
c.x=a.x+b.x;
c.y=a.y+b.y;
if(c.y<0)printf("%f-i%f\n",c.x,-c.y);
else printf("%f+i%f\n",c.x,c.y);
}
void sub(num a,num b)
{
num c;
c.x=a.x-b.x;
c.y=a.y-b.y;
if(c.y<0)printf("%f-i%f\n",c.x,-c.y);
else printf("%f+i%f\n",c.x,c.y);
}
void mult(num a,num b)
{num c;
c.x=a.x*b.x-a.y*b.y;
c.y=a.x*b.y+a.y*b.x;
if(c.y<0)printf("%f-i%f\n",c.x,-c.y);
else printf("%f+i%f\n",c.x,c.y);
}
void fengli(num a,num b)
{
printf("第一个复数的实部为:%f\n",a.x);
if(a.y<0)
printf("第一个复数的虚部为:-i%f\n",-a.y);
else
printf("第一个复数的虚部为:i%f\n",a.y);
printf("第二个复数的实部为:%f\n",b.x);
if(b.y>0)
printf("第二个复数的虚部为:i%f\n",b.y);
else
printf("第二个复数的虚部为:-i%f\n",-b.y);
}
void main()
{num a,b;int t;
a=Init();
b=Init();
while(t!=6)
{
menu();
scanf("%d",&t);
switch (t)
{case 1: produce(a); produce(b);break;
case 2:add(a,b);break;
case 3:sub(a,b);break;
case 4:mult(a,b);break;
case 5:fengli(a,b);break;
case 6:break;
default :printf("此选择无效!\n");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -