如何用c语言编一个复数的四则运算

如何用c语言编一个复数的四则运算

1、设计一个可进行复数运算的演示程序。要求实现下列六种基本运算
1)由输入的实部和虚部生成一个复数
2)两个复数求和;
3)两个复数求差;
4)两个复数求积,
5)从已知复数中分离出实部;
6)从已知复数中分离出虚部。
运算结果以相应的复数或实数的表示形式显示(最好用结构体的方法)
要是能用c++和stl,可以这样写#include <complex>#include <iostream>void main(){ using namespace std; complex<double> a(3, 2); complex<double> b(5, 6); complex<double> result(0,0); result = a*b/(a+b); cout << result;}
2、例程:

stdio.h>
#include<conio.h>
#include<stdlib.h>
#define ERR -1
#define MAX 100 /*定义堆栈的大小*/
int stack[MAX]; /*用一维数组定义堆栈*/
int top=0; /*定义堆栈指示*/
int push(int i) /*存储运算数,入栈操作*/
{
if(top<MAX)
{
stack[++top]=i; /*堆栈仍有空间,栈顶指示上移一个位置*/
return 0;
}
else
{
printf("The stack is full");
return ERR;
}
}
int pop() /*取出运算数,出栈操作*/
{
int var; /*定义待返回的栈顶元素*/
if(top!=NULL) /*堆栈中仍有元素*/
{
var=stack[top--]; /*堆栈指示下移一个位置*/
return var; /*返回栈顶元素*/
}
else
printf("The stack is empty!\n");
return ERR;
}
void main()
{
int m,n;
char l;
int a,b,c;
int k;
do{
printf("\tAriothmatic Operate simulator\n"); /*给出提示信息*/
printf("\n\tPlease input first number:"); /*输入第一个运算数*/
scanf("%d",&m);
push(m); /*第一个运算数入栈*/
printf("\n\tPlease input second number:"); /*输入第二个运算数*/
scanf("%d",&n);
push(n); /*第二个运算数入栈*/
printf("\n\tChoose operator(+/-/*//):");
l=getche(); /*输入运算符*/
switch(l) /*判断运算符,转而执行相应代码*/
{
case '+':
b=pop();
a=pop();
c=a+b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
case '-':
b=pop();
a=pop();
c=a-b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
case '*':
b=pop();
a=pop();
c=a*b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
case '/':
b=pop();
a=pop();
c=a/b;
printf("\n\n\tThe result is %d\n",c);
printf("\n");
break;
}
printf("\tContinue?(y/n):"); /*提示用户是否结束程序*/
l=getche();
if(l=='n')
exit(0);
}while(1);
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-09
创建一个结构体,分为实部和虚部两个成员。进行运算法时,利用成员变量进行做
第2个回答  2011-04-08
创建一个包含两个元素的结构体,分别为复数的实部和虚部,运算时再按照相应的运算法则计算就可以了…本回答被提问者采纳
第3个回答  2011-04-08
这个不是很简单吗,你把加减乘除分别写成四个子函数,然后用CASE也可以,就OK了阿
第4个回答  2011-04-09
void main()
{
float r1,v1,r2,v2;
printf("复数1\n");
printf("实部:\n");scanf("%f",&r1);
printf("虚部:\n");scanf("%f",&v1);
printf("复数2\n");
printf("实部:\n");scanf("%f",&r2);
printf("虚部:\n");scanf("%f",&v2);
printf("和\n");
printf("%f + %f i\n",r1+r2,v1+v2);
printf("差\n");
printf("%f + %f i\n",r1-r2,v1-v2);
printf("积\n");
printf("%f + %f i\n",r1*r2-v1*v2,v1*r2+r1*v2);
printf("商\n");
printf("%f + %f i\n",(r1*r2+v1*v2)/(r2*r2+v2*v2),(v1*r2-r1*v2)/(r2*r2+v2*v2));
}

如何用c语言编一个复数的四则运算
1、设计一个可进行复数运算的演示程序。要求实现下列六种基本运算1)由输入的实部和虚部生成一个复数2)两个复数求和;3)两个复数求差;4)两个复数求积,5)从已知复数中分离出实部;6)从已知复数中分离出虚部。运算结果以相应的复数或实数的表示形式显示(最好用结构体的方法)要是能用c++和stl,可以这...

设计一个关于复数的结构类型,并实现复数的四则运算
int fuhao;printf("input the sign 1:+,2:-,3:*,4:\/");scanf("%d",&fuhao);switch (fuhao){ case 1:{ if((m->y+n->y)>=0)printf("%d+%di",(m->x+n->x),(m->y+n->y));else printf("%d%di",(m->x+n->x),(m->y+n->y));} break;case 2:if((m->y...

C++如何定义一个复数类,并支持四则运算
cout<<"输入两个复数,即a,b,c,d的值:";cin>>a>>b>>c>>d;complex n1(a,b),n2(c,d);cout<<"两个复数值为:";cout<<"A=";n1.display();cout<<" B=";n2.display();cout<<endl;cout<<endl<<endl<<"两个复数的加法:"<<endl;complex result1;result1=n1+n2;n1.display(...

C++复数 类 实现,包含四则运算
type takeIm(){return Im;}\/\/取虚部 complex takeconj(){complex t(Re,-Im);return t;}\/\/求共轭复数 complex operator =(complex&a){ Re=a.Re;Im=a.Im;return*this;} complex operator +(){ return*this;} complex operator -(){ complex t(-Re,-Im);return t;} complex operator ...

如何运用复数的代数表示式进行四则运算
复数是由意大利米兰学者卡当在十六世纪首次引入,经过达朗贝尔、棣莫弗、欧拉、高斯等人的工作,此概念逐渐为数学家所接受。复数的四则运算规定为:加法法则:(a+bi)+(c+di)=(a+c)+(b+d)i;减法法则:(a+bi)-(c+di)=(a-c)+(b-d)i;乘法法则:(a+bi)·(c+di)=(...

复数的四则运算公式
复数的四则运算公式:(a+bi)+(c+di)=(a+c)+(b+d)。我们把形如z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。当z的虚部等于零时,常称z为实数;当z的虚部不等于零时,实部等于零时,常称z为纯虚数。实数,是有理数和无理数的总称。数学上,实数...

复数四则运算
复数四则运算包括复数的加法、减法、乘法和除法。复数的加法是将实部和虚部分别相加。假设有两个复数\\(z_1 = a + bi\\)和\\(z_2 = c + di\\),其中\\(a, b, c, d\\)都是实数,\\(i\\)是虚数单位。那么,它们的和\\(z_1 + z_2\\)就是\\((a + c) + (b + d)i\\)。复数的减法是...

复数四则运算
复数的四则运算有加法法则,乘法法则,除法法则和开方法则。1、加法法则 复数的加法法则:设z1=a+bi,z2 =c+di是任意两个复数。两者和的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。两个复数的和依然是复数。即(a+bi)±(c+di)=(a±c)+(b±d)。2、乘法法则 复数的...

复数的四则运算公式是什么?
复数的四则运算公式 (1)加法运算 设z1=a+bi,z2=c+di是任意两个复数,它的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和:(a+bi)±(c+di)=(a±c)+(b±d)i。(2)乘法运算 设z1=a+bi,z2=c+di是任意两个复数,则:(a+bi)(c+di)=(ac-bd)+(bc+ad)i。其实就是...

复数四则运算最后不能进行,郁闷,那里错了???
printf("两复数的差为%f \\n" , minus(q1,q2));printf("两复数的积为%f \\n", multiply(q1,q2));对象怎么能打印出来 改这样试试:printf("两复数的和为%f+%f\\n", getreal(add(q1,q2)),getimage(add(q1,q2)),);printf("两复数的差为%f+%fi\\n" ,getreal(minus(q1,q2)),getimage(...

相似回答