当前位置:首页 » 编程语言 » c语言编程复数

c语言编程复数

发布时间: 2023-12-13 22:58:59

c语言 复数表示与求和

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

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

源代码如下:

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

double sum(double* x);

void main()
{

double *a,s=0.0;
a=(double*)malloc(sizeof(double));
*a=5;
s=sum(a);

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

}double sum(double* x)

{

int j=0;
double s=0.0;

for(j=0;j<=3;j++)
{
s=s+pow(*x,j);
}

s=s*2;

return s;
}

(1)c语言编程复数扩展阅读

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

typedefstruct{

floatr;

floatim;

Complex;

Complexres;

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

res.r=a->r+b->r;

res.im=a->im+b->im;

return&res;
}
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;

return&res;

⑵ 用c语言 如何编写两个复数的运算啊 都含有虚部 谢谢啊

定义一个struct作为复数,然后分别定义加减剩除运算。可以增加一个函数printcomplex来在主函数中以数学的形式输出复数。
typedef struct complex
{
double real; //实部
double image; //虚部
} COMPLEX;

COMPLEX add(COMPLEX a,COMPLEX b) //加法
{
COMPLEX sum;
sum.real = a.real+b.real;
sum.image = a.image+b.image;
return sum;
}

COMPLEX sub(COMPLEX a,COMPLEX b) //减法
{
COMPLEX diff;
diff.real = a.real-b.real;
diff.image = a.image-b.image;
return diff;
}

COMPLEX mul(COMPLEX a,COMPLEX b) //乘法
{
COMPLEX acc;
acc.real = a.real*b.real-a.image*b.image;
acc.image = a.real*b.image+a.image*b.real;
return acc;
}

COMPLEX divi(COMPLEX a,COMPLEX b) //除法
//除法去分母可以转换为乘法
{
COMPLEX quo;
double den = b.real*b.real+b.image*b.image; //分母
/* 先判断除数是否为0,因为均为double型,所以不能 直接与0作比较,而要用绝对值是否小于某个极小值e(读伊夫西龙???)来判断是否为0,这里取e=10e-10 */
if ((abs(b.real)<10e-10) && (abs(b.image)<10e-10))
{
printf("Divivd by Zero");
exit(0); //强制退出程序
}

quo.real = a.real*b.real+a.image*b.image;
quo.real /= den;
quo.image = a.image*b.real+a.real*b.image;
quo.image /= den;
return quo;
}

void printcom(COMPLEX a) //输出复数a
{
printf("%lf+%lfi",a.real,a.image);
}

⑶ C语言用头文件实现复数加减法

1、_Complex是一种新增的数据类型,用来表示复数。C99 新增了复数类型(_Complex)和虚数类型(_Imaginary)。简单来说,C99 提供了三种复数类型:float _Complex,double _Complex,和 long double _Complex。对于 float _Complex类型的变量来说,它包含两个 float类型的值,一个用于表示复数的实部(real part),另一个用于表示虚部(imaginary part)。类似地,double _Complex 包含两个 double类型的值。C99 也提供了三种虚数类型:float _Imaginary,double _Imaginary,以及 long double _Imaginary。虚数类型只有虚部,没有实部。

2、包含标准头文件 complex.h 后,就可以用 complex来代表 _Complex,用imaginary来代表 _Imaginary,以及用 I来代表虚数单位 i,也就是 -1的平方根。例如:
#include <complex.h>
double _Complex x = 5.2;
double complex y = 5.0 * I;
double complex z = 5.2 – 5.0 * I;

3、注意:_Complex类型对于独立式环境(freestanding environment)来说是可选的。可选的意思是,不强制必须支持这种类型。而所谓独立式环境,是指 C 程序可以在没有操作系统的情况下运行。_Imaginary类型在任何环境下都是可选的。目前的编译器对这两种类型的支持都不太好。

⑷ c语言编程题 求复数相乘

#include<stdio.h>
typedef
struct
complex
{
float
re;
float
im;
}comp;
comp
mut
(comp,comp);
void
print_out(comp);
void
main()
{comp
x,y,z;
printf("输入2个复数
\n");
printf("输入第一个复数
a+bi:");
scanf("%f+%fi",&x.re,&x.im);
printf("输入第二个复数
x+yi:");
scanf("%f+%fi",&y.re,&y.im);
z=mut
(x,y);
print_out(z);
}
comp
mut
(comp
x,comp
y)
//多了分号,下面的函数也是
{
comp
z;
z.re=x.re*y.re-x.im*y.im;
z.im=x.re*y.im+x.im*y.re;
return
z;
}
void
print_out(comp
z)
{
printf("%.2f",z.re);
if(z.im>0)printf("+%.2fi\n",z.im);
else
printf("-%.2fi\n",-z.im);
}

热点内容
ios6G与安卓12G哪个更快 发布:2025-01-24 11:26:22 浏览:827
下线源码 发布:2025-01-24 11:26:22 浏览:523
windows8解压软件 发布:2025-01-24 11:04:41 浏览:559
蓝牙聊天源码 发布:2025-01-24 11:03:13 浏览:124
安卓是什么意思是vivo吗 发布:2025-01-24 11:01:32 浏览:486
悬赏网源码 发布:2025-01-24 10:53:14 浏览:733
c语言时间变量 发布:2025-01-24 10:40:24 浏览:870
ppiandroid 发布:2025-01-24 10:25:50 浏览:1001
儿童压缩机 发布:2025-01-24 10:25:09 浏览:75
苹果的允许访问在哪里 发布:2025-01-24 10:24:32 浏览:32