您当前的位置:首页 > 互联网教程

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

发布时间:2025-05-18 13:46:51    发布人:远客网络

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

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

1、设计一个可进行复数运算的演示程序。要求实现下列六种基本运算

1)由输入的实部和虚部生成一个复数

运算结果以相应的复数或实数的表示形式显示(最好用结构体的方法)

要是能用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;}

#defineMAX100/*定义堆栈的大小*/

intstack[MAX];/*用一维数组定义堆栈*/

intpush(inti)/*存储运算数,入栈操作*/

stack[++top]=i;/*堆栈仍有空间,栈顶指示上移一个位置*/

intpop()/*取出运算数,出栈操作*/

intvar;/*定义待返回的栈顶元素*/

if(top!=NULL)/*堆栈中仍有元素*/

var=stack[top--];/*堆栈指示下移一个位置*/

printf("\tAriothmaticOperatesimulator\n");/*给出提示信息*/

printf("\n\tPleaseinputfirstnumber:");/*输入第一个运算数*/

printf("\n\tPleaseinputsecondnumber:");/*输入第二个运算数*/

printf("\n\tChooseoperator(+/-/*//):");

switch(l)/*判断运算符,转而执行相应代码*/

printf("\n\n\tTheresultis%d\n",c);

printf("\n\n\tTheresultis%d\n",c);

printf("\n\n\tTheresultis%d\n",c);

printf("\n\n\tTheresultis%d\n",c);

printf("\tContinue?(y/n):");/*提示用户是否结束程序*/

二、C语言 复数表示与求和

在数学中一个复数可以定义为(z=a+ bi)的形式。 C语言在 ISO C99时就引入了复数类型。它是通过 complex.h中定义的。我们可以使用 complex, __complex__,或 _ComplexI类型符号来表示。

在C语言中有三种复数类型,分别为 float complex, double complex, long double complex。他们之间的区别就是表示复数中实部和虚步的数的数据类型不同。 complex其实就是一个数组,数组中有两个元素,一个表示复数的实部,一个表示复数的虚部。

a=(double*)malloc(sizeof(double));

printf("求和的结果是:%lf\n",s);

输入任意两个复数差与商的源代码如下

Complex*add(Complex*a,Complex*b){

Complex*div(Complex*a,Complex*b){

floatd=(b->r*b->r+b->im*b->im);

res.r=(a->r*b->r+a->im*b->im)/d;

res.im=(a->im*b->r-a->r*b->im)/d;

三、怎样用C语言编写数学公式

1、C语言有现场的常用数学函数,所在函数库为math.h、stdlib.h。

int abs(int i)返回整型参数i的绝对值

double cabs(struct complex znum)返回复数znum的绝对值

double fabs(double x)返回双精度参数x的绝对值

long labs(long n)返回长整型参数n的绝对值

double exp(double x)返回指数函数ex的值

double frexp(double value,int*eptr)返回value=x*2n中x的值,n存贮在eptr中

double ldexp(double value,int exp);返回value*2exp的值

double log(double x)返回logex的值

double log10(double x)返回log10x的值

double pow(double x,double y)返回xy的值

double pow10(int p)返回10p的值

double sqrt(double x)返回+√x的值

double acos(double x)返回x的反余弦cos-1(x)值,x为弧度

double asin(double x)返回x的反正弦sin-1(x)值,x为弧度

double atan(double x)返回x的反正切tan-1(x)值,x为弧度

double atan2(double y,double x)返回y/x的反正切tan-1(x)值,y的x为弧度

double cos(double x)返回x的余弦cos(x)值,x为弧度

double sin(double x)返回x的正弦sin(x)值,x为弧度

double tan(double x)返回x的正切tan(x)值,x为弧度

double cosh(double x)返回x的双曲余弦cosh(x)值,x为弧度

double sinh(double x)返回x的双曲正弦sinh(x)值,x为弧度

double tanh(double x)返回x的双曲正切tanh(x)值,x为弧度

double hypot(double x,double y)返回直角三角形斜边的长度(z),x和y为直角边的长度,z2=x2+y2

2、复杂的数学函数可以用自定义函数的形式实现。

doubleConerVelocity(intA,doublex1,doubley1,doublex2,doubley2,doublet1,doublet2)

T=acos(abs(x1*x2+y1*y2)/sqrt(x1*x1+y1*y1)/sqrt(x2*x2+y2*y2));