C语言 复数表示与求和

要求~定义一个表示复数的结构类型,编写一个程序,实现输入一个复数,显示一个复数和两个复数相加的的操作。... 要求~定义一个表示复数的结构类型,编写一个程序,实现输入一个复数,显示一个复数和两个复数相加的的操作。 展开
 我来答
小夏聊生活
高能答主

2019-11-25 · 专注于分享生活知识,热爱生活
小夏聊生活
采纳数:447 获赞数:114596

向TA提问 私信TA
展开全部

在数学中一个复数可以定义为 (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\n",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;
}

扩展资料

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

typedef struct{

float r;

float im;

Complex;

Complex res;

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) {

float d = (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;

百度网友c5456a611
推荐于2016-03-28 · TA获得超过297个赞
知道答主
回答量:166
采纳率:0%
帮助的人:0
展开全部
#include<stdlib.h>
#include<stdio.h>

typedef struct
{
double a, b;
} fushu;

fushu add(fushu a, fushu b) /*计算a+b,返回一个复数*/
{
fushu c;
c.a = a.a + b.a;
c.b = a.b + b.b;
return c;
}

int main()
{fushu x,y;
printf("输入复数实部:");
scanf("%lf",&x.a);
printf("输入复数虚部:");
scanf("%lf",&x.b);
printf("你输入的复数为:%lf + %lf i\n",x.a,x.b);
printf("输入另一个复数的实部:");
scanf("%lf",&y.a);
printf("输入另一个复数的虚部:");
scanf("%lf",&y.b);
printf("两个复数的和为:%lf + %lf i",add(x,y).a,add(x,y).b);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式