用结构体变量表示复数,进行两个复数的加法和乘法运算并输出结果

作者&投稿:邢砖 (若有异议请与网页底部的电邮联系)
关于C语言的题目:用结构体定义一个复数,并实现复数的加法、减法和乘法。~

#include
struct complex
{
int re;
int im;
};
void add(struct complex a, struct complex b, struct complex *c)
{
c->re=a.re+b.re;
c->im=a.im+b.im;
}
void minus(struct complex a, struct complex b, struct complex *c)
{
c->re=a.re-b.re;
c->im=a.im-b.im;
}
int main()
{
struct complex x,y,s,p;
scanf("%d%d",&x.re,&x.im);
scanf("%d%d",&y.re,&y.im);
add(x,y,&s);
printf(" sum=%5d+%5di
",s.re,s.im);
minus(x,y,&p);
printf(" product=%5d+%5di
",p.re,p.im);
}

扩展资料:
复数运算法则
1、加法交换律:z1+z2=z2+z1
2、乘法交换律:z1×z2=z2×z1
3、加法结合律:(z1+z2)+z3=z1+(z2+z3)
4、乘法结合律:(z1×z2)×z3=z1×(z2×z3)
5、分配律:z1×(z2+z3)=z1×z2+z1×z3

#include "stdio.h"
struct complex_num
{
double real;
double image;
};
complex_num add(complex_num a,complex_num b)
{
complex_num c;
c.real=a.real+b.real;
c.image=a.image+b.image;

return c;
}
complex_num cheng(complex_num a,complex_num b)
{
complex_num c;
c.real=a.real*b.real-a.image*b.image;
c.image=a.real*b.image+a.image*b.real;
return c;

}
void main()
{
complex_num a,b,c,d;
printf("请输入复数a的实部和虚部:");
scanf("%lf %lf",&a.real,&a.image);
printf("请输入复数b的实部和虚部:");
scanf("%lf %lf",&b.real,&b.image);
c=cheng(a,b);
d=add(a,b);
printf("实数a加上实数b后新的实数的实部虚部为:%d ,%d
",d.real,d.image);
printf("实数a乘以实数b后新的实数的实部虚部为:%d ,%d
",c.real,c.image);




}

#include<stdio.h>

struct complex add(struct complex  c1,struct complex c2);

struct complex amass(struct complex  c1,struct complex c2);

struct complex

int real;

int image; 

};

void main()

{

struct complex a,b;

while(scanf("%d%d%d%d",&a.real,&a.image,&b.real,&b.image)!=EOF)

{

add(a,b);

amass(a,b);

}

}

struct complex add(struct complex  c1,struct complex c2)

{

printf("%d+(%di)
",c1.real+c2.real,c1.image+c2.image);

return c1;

}

struct complex amass(struct complex  c1,struct complex c2)

{

printf("%d+(%di)
",(c1.real*c2.real-c1.image*c2.image),(c1.real*c2.image+c2.real*c1.image));

return c1;

}

扩展资料:

main()函数用法:

大多数UNIX系统对main函数提供了三个参数,原型如下:

intmain(intargc,char*argv[],char*env[]);

其中第三个参数是环境表地址。

ANSIC规定main函数只有两个参数,而且第三个参数与全局变量environ相比也没有带来更多益处,所以POSIX.1也规定应使用environ而不使用第三个参数。

通常用getenv和putenv函数来存取特定的环境变量,而不是用environ变量。

main函数的原型多是下面这种形式:

intmain(intargc,char*argv[]),参数argc代表了输入参数的个数,char*argv[]表示传入的参数的字符串,是一个字符串数组。

例如在linux平台下编写一个小程序:

int main(intargc,char*argv[])

int i;

printf("argc:%d\n",argc);

for(i=0;i<argc;i++)

printf("argv[%d]:%s\n",i,argv[i]);

exit(0);

用gcc编译后形成一个a.out的可执行的文件,运行a.out,其结果是:

argc=1,argv[0]=”a.out”

运行的程序的文件名,也占用一个参数位置,也就是说argv数组中的第一个单元指向的字符串总是可执行程序的名字,以后的单元指向的字符串依次是程序调用时的参数。这个赋值过程是操作系统完成的,只需要拿来用就可以了。

在命令行参数的提交中,系统会自动给指针数组后加上一个NULL,所以for(i=0;i<argc;i++)这句也可以换成while(*argv!=NULL)

int main(intargc)省略其它参数的定义也是可以的,这样运行时候argc就直接返回参数个数,而不返回其它。

运行命令行参数带有char*argv[]的时候,如果输入参数带有空格,应该用双引号括起来。



#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct Complex
{
    int r;
    int i;
};
struct Complex Add(struct Complex x,struct Complex y)
{
    struct Complex z;
    z.i=x.i+y.i;
    z.r=x.r+y.r;
    return z;
};
struct Complex* Mulitply(struct Complex x,struct Complex y)
{
    struct Complex* z = (struct Complex*)malloc(sizeof(struct Complex)); //*****
    
    z->r = x.r*y.r - x.i*y.i;
    z->i = x.r*y.i + x.i*y.r;

    return z;                                //*****
}
void Input(struct Complex* x)       //*****
{
    printf("
Input the values of r and i:");
    scanf("%d%d", &x->r, &x->i);                //*****
}
void main()
{
    struct Complex a,b={1,1},z,*p;          //*****
    Input(&a);
    printf("
a=%d+%di",a.r,a.i);
    printf("
b=%d+%di
",b.r,b.i);
    p=Mulitply(a,b);
    z=Add(a,b);
    printf("
a+b=%d+%di",z.r,z.i);
    printf("
a*b=%d+%di
",p->r,p->i);
    free(p);
}

改完可以运行出结果了,不明白的地方继续追问



void Input(struct Complex x)改为void Input(struct Complex *x)
scanf("%d%d",x->r,x->i); 改为scanf("%d%d",&(x->r),&(x->i));
struct Complex a,b=(1,1),z,*p; 改为struct Complex a,b={.r=1; .i=1;},z,*p;


用结构体变量表示复数,进行两个复数的加法和乘法运算并输出结果_百度知 ...
struct complex add(struct complex c1,struct complex c2);struct complex amass(struct complex c1,struct complex c2);struct complex { int real;int image;};void main(){ struct complex a,b;while(scanf("%d%d%d",&a.real,&a.image,&b.real,&b.image)!=EOF){ add(a,b);amass(...

...表示复数的实部和虚部,然后定义此类型的两个结构体变量表示两...
\/\/输出相加后的复数数据 void outputfushu() { printf("复数为:==>(%d + %di)\\n",this->sb,this->xb); }}; \/\/typedef重定义结构体类型变量typedef struct fushu COMPLEXTYPE;int main() { \/* 定义两个结构体变量*\/ COMPLEXTYPE complex1(6,2),complex2(3,4); COMPLEXTYPE complex_; \/\/定义存储...

C语言,利用两个结构体变量求解复数的积
typedef struct TYPE_PLURAL { double realpart;double imaginarypart;} plural;plural operator*(const plural &lp,const plural &rp){ plural rtn;rtn.realpart = lp.realpart*rp.realpart - lp.imaginarypart*rp.imaginarypart;rtn.imaginarypart = lp.imaginarypart*rp.realpart + lp.realpart*rp.im...

用结构体函数计算两个复数的四则运算的程序分析、重难点和结论?_百度...
结构体函数是指将结构体作为函数的参数和返回值的函数。在这个程序中,我们可以定义一个结构体来表示复数,包括它的实部和虚部。然后我们可以定义四个结构体函数来分别实现两个复数的加法、减法、乘法和除法。结论:通过使用结构体函数,我们可以方便地实现复数的四则运算。

关于C语言的题目:用结构体定义一个复数,并实现复数的加法、减法和乘法...
int im;};void add(struct complex a, struct complex b, struct complex *c){ c->re=a.re+b.re;c->im=a.im+b.im;} void minus(struct complex a, struct complex b, struct complex *c){ c->re=a.re-b.re;c->im=a.im-b.im;} int main(){ struct complex x,y,s,p...

C++的问题:定义描述复数的结构体类型变量,并实现复数之间的加减法运算和...
include "stdafx.h"#include <iostream>using namespace std;struct complex \/\/定义一个复数结构体{ int real; \/\/实数,数据类型根据自己的要求改吧 int imaginary; \/\/虚数,同上 friend complex operator + (complex a, complex b); \/\/重载运算符“+”,其运算结果为复数,即返回类型为comp...

c429是什么意思
C429代表C语言中的复数类型,长度为429位。在C语言中,复数类型使用结构体来表示。C429是一个特定的结构体类型,用于表示复数,包括实部和虚部两个部分。在C标准库中,存在一个名为C429的结构体类型,类型的长度为429位,实部和虚部各占214位。

c429是什么意思
C语言中是一个结构体类型。C429在C语言中是一个结构体类型。是C标准库中的一个类型,定义在头文件中,表示复数类型。在C语言中,复数类型使用结构体来表示,其C429代表复数类型的长度为429位,包括实部和虚部两个部分,每个部分占214位。

matlab 怎么根据结构体的变量值搜索结构体矩阵的元素?
1. 使用直接引用方式定义结构 与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。比如建立一个复数变量x:x.real = 0; % 创建字段名为real,并为该字段赋值为0 x.imag = 0 % 为x创建一个新的字段imag,并为该字段赋值为0 x = real: 0 imag: 0 然后...

自定义链表,每个节点的数据是一个复数(结构体),要求用户输入节点个数...
一般链表都用的这种结构,结构体里面有两个元素:一个要储存的数据,一个指向下一个结点的指针。如:typedef struct node { char ch;struct *node;}node;

鄂尔多斯市18434733851: 定义一结构体类型表示复数的实部和虚部,然后定义此类型的两个结构体变量表示两个复数,键盘输入成员的值 -
管祁鱼石: #include <stdio.h>//定义结构体变量类型 struct fushu { int sb; //存储复数实部 int xb; //存储复数虚部 //创建fhshu结构体类型默认值(又称结构体类型构造函数) fushu() { sb = 0; xb = 0; } //创建fhshu结构体类型初始化函数(又称结构体类型构造函...

鄂尔多斯市18434733851: C语言求具体两个复数(例如(5+3i)*(2+6i))的乘积,用上结构体变量.
管祁鱼石:#include <stdio.h> struct comp { int real; int imag; }; int main() { struct comp c1,c2,c; printf("输入复数1的实部和虚部:"); scanf("%d%d",&c1.real,&c1.imag); printf("输入复数2的实部和虚部:"); scanf("%d%d",&c2.real,&c2.imag...

鄂尔多斯市18434733851: 2、 利用add函数求两个复数2+3i和4+5i的和.(要求用结构体来定义复数) -
管祁鱼石: 等于6+8i

鄂尔多斯市18434733851: 定义一个能够表示复数的结构类型,并定义结构变量完成两个复数的加法和减法. -
管祁鱼石: 晕,这也属于数学范围?可惜不能用C++, 否则可以直接封装两个方法(加和减) #include <stdio.h> struct {float x, y;} my_complex;main() {my_complex a, b, c, d; a.x = 5; a.y = 4; // 复数a为:5+4i b.x = 3; b.y = -5; // 复数b为:3-5j c.x = a.x - b.x; c.y = a.y - b.y; // 复数c = a - b; d.x = a.x + b.x; d.y = a.y + b.y; // 复数d = a + b;}

鄂尔多斯市18434733851: 用C语言编写程序,用结构体的方法进行两个复数的相减 -
管祁鱼石: <p>/*</p> <p>c = 1+i2</p> <p>Press any key to continue</p> <p>*/</p> #include <stdio.h> struct Complex { double m_r; double m_i; }; void main() { struct Complex c1 = {1.2,2.3},c2 = {0.2,0.3}; struct Complex c; c.m_r = c1.m_r - c2.m_r; c.m_i = c1.m_i - c2.m_i; printf("c = %g+i%g\n",c.m_r,c.m_i); }

鄂尔多斯市18434733851: 计算两个复数的和题目描述用下面的结构体存储复数的实部和虚部,计算两个复数的和并输出 -
管祁鱼石: #include <stdio.h> typedef struct Complex { double real; // 复数实部 double imag; // 复数虚部 }Complex; Complex plus(Complex c1, Complex c2) { Complex c3; c3.real = c1.real + c2.real; c3.imag = c1.imag + c2.imag; return c3; } int main() { ...

鄂尔多斯市18434733851: 定义一个能够表示复数的结构类型,并定义结构变量完成两个复数的加法和减法.用c -
管祁鱼石:[答案] 晕,这也属于数学范围?可惜不能用C++, 否则可以直接封装两个方法(加和减) #include struct { float x, y; } my_complex; main() { my_complex a, b, c, d; a.x = 5; a.y = 4; // 复数a为:5+4i b.x = 3; b.y = -5; // 复数b为:3-5j c.x = a.x - b.x; c.y = a.y - b.y...

鄂尔多斯市18434733851: c语言程序设计编程两个复数的和,差 -
管祁鱼石: 这个 需要使用结构体了 struct{int real; int comx;}计算的时候用两个变量分别表示实数和虚数就行了.

鄂尔多斯市18434733851: 利用结构变量求解两个复数之积(3+4i)*(5+6i) -
管祁鱼石: 参考:TC下 #includestruct mul { int real; int image; }f1,f2; void main() { int a,b; printf("input real and image:\n"); scanf("%d%d",&f1.real,&f1.image:\n"); printf("input real and image); scanf("%d%d",&f2.real,&f2.image); a=f1.real*f2.real-f1....

鄂尔多斯市18434733851: 编写函数计算两个复数之差.使用结构表示 -
管祁鱼石: 首先知道复数的运算公式 有两个复数:z1=a+bi ,z2=c+di 那么复数和为:z=(a+c)+(b+d)i.积为(ac-bd)+(bc+ad)i 程序如下:#include<stdio.h> #include<math.h> void main() { int i1,i2,j1,j2; int sum(int i1,int i2,int j1,int j2); int mul(int i1,int i2,int j...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网