精华内容
下载资源
问答
  • c语言复数运算

    2018-10-21 15:22:29
    c语言实现复数运算,包括加减乘除等。
  • c语言 复数的运算

    2021-05-19 19:49:56
    复数的运算请用程序实现用函数编写复数的加法、减法、乘法和除法的运算。函数定义// 复数加法COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y);// 复数减法COMPLEX ComplexSub(const COMPLEX *x, const ...

    复数的运算

    请用程序实现

    用函数编写复数的加法、减法、乘法和除法的运算。

    函数定义

    // 复数加法

    COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y);

    // 复数减法

    COMPLEX ComplexSub(const COMPLEX *x, const COMPLEX *y);

    // 复数乘法

    COMPLEX ComplexMul(const COMPLEX *x, const COMPLEX *y);

    // 复数除法

    COMPLEX ComplexDiv(const COMPLEX *x, const COMPLEX *y);

    函数说明

    ComplexAdd 将 x 所指复数加上 y 所指复数,函数值为两者相加的和。

    ComplexSub 将 x 所指复数减去 y 所指复数,函数值为两者相减的差。

    ComplexMul 将 x 所指复数乘以 y 所指复数,函数值为两者相乘的积。

    ComplexDiv 将 x 所指复数除以 y 所指复数,函数值为两者相除的商。

    要求:当除数为零时,ComplexDiv 函数报告错误,函数值为零。

    示例 1

    输入

    4.2+1.5i

    2.5-0.3i

    输出

    6.7+1.2i

    1.7+1.8i

    10.95+2.49i

    1.58517+0.790221i

    示例 2

    输入

    1.6-3.5i

    0+0i

    输出

    1.6-3.5i

    1.6-3.5i

    0+0i

    Divided by zero!

    0+0i

    代码如下;

    #include

    typedef struct

    {

    double rp;

    double ip;

    char op;

    }COMPLEX;

    // 复数加法

    COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y)

    {

    COMPLEX complex;

    complex.rp=x->rp+y->rp;

    complex.ip=x->ip+y->ip;

    if(complex.ip>=0)

    complex.op='+';

    return complex;

    }

    // 复数减法

    COMPLEX ComplexSub(const COMPLEX *x, const COMPLEX *y)

    {

    COMPLEX complex;

    complex.rp=x->rp-y->rp;

    complex.ip=x->ip-y->ip;

    if(complex.ip>=0)

    complex.op='+';

    return complex;

    }

    // 复数乘法

    COMPLEX ComplexMul(const COMPLEX *x, const COMPLEX *y)

    {

    COMPLEX complex;

    complex.rp=x->rp*y->rp+(x->ip*y->ip)*(-1);

    complex.ip=x->rp*y->ip+x->ip*y->rp;

    if(complex.ip>=0)

    complex.op='+';

    return complex;

    }

    // 复数除法

    COMPLEX ComplexDiv(const COMPLEX *x, const COMPLEX *y)

    {

    COMPLEX complex;

    if(y->rp==0||y->ip==0)

    printf("Divided by zero!");

    else

    {

    complex.rp=(x->rp*y->rp+x->ip*y->ip)/((y->rp)*(y->rp)+(y->ip)*(y->ip));

    complex.ip=((x->ip*y->rp)-(x->rp*y->ip))/((y->rp)*(y->rp)+(y->ip)*(y->ip));

    if(complex.ip>=0)

    complex.op='+';

    return complex;

    }

    }

    int main()

    {

    COMPLEX a, b, p, q, r, s;

    ComplexInput(&a);

    ComplexInput(&b);

    p = ComplexAdd(&a, &b);

    ComplexOutput(&p);

    putchar('\n');

    q = ComplexSub(&a, &b);

    ComplexOutput(&q);

    putchar('\n');

    r = ComplexMul(&a, &b);

    ComplexOutput(&r);

    putchar('\n');

    s = ComplexDiv(&a, &b);

    ComplexOutput(&s);

    putchar('\n');

    return 0;

    }

    void ComplexInput(COMPLEX *complex)

    {

    double i,j;

    char op;

    scanf("%lf%c%lfi",&i,&op,&j);

    complex->rp=i;

    if(op=='+')

    complex->ip=j;

    else

    complex->ip=-j;

    }

    void ComplexOutput(const COMPLEX *complex)

    {

    if(complex->ip>=0)

    printf("%g%c%gi",complex->rp,complex->op,complex->ip);

    else

    printf("%g%gi",complex->rp,complex->ip);

    }

    如果代码有误,欢迎大家指正。

    展开全文
  • 使用说明:当输入实部时,点击输入实部单选按钮,如果输入虚部就点击输入虚部点选按钮然后点输入。...输入好数据然后可以选择运算方法。如果是一个混合四则运算需要在必要的地方带上括号“()”。...
  • 数据结构实验题,C语言实现了:1、定义复数类型,构造其数据结构。 2、实现两个复数的加、减、乘、除四则运算。
  • C语言复数运算(结构体)

    千次阅读 多人点赞 2020-04-09 10:49:27
    复数的加减乘除 *// 复数加法 COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y); // 复数减法 COMPLEX ComplexSub(const COMPLEX *x, const COMPLEX *y); // 复数乘法 COMPLEX ComplexMul(const COMPLEX *x,...

    复数的加减乘除

    这是出自某学习网站的一道题,主要是本人写的,结尾部分为自带部分。
    *// 复数加法
    COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y);
    // 复数减法
    COMPLEX ComplexSub(const COMPLEX *x, const COMPLEX *y);
    // 复数乘法
    COMPLEX ComplexMul(const COMPLEX *x, const COMPLEX *y);
    // 复数除法
    COMPLEX ComplexDiv(const COMPLEX *x, const COMPLEX y);
    //为除数,y为被除数

    要求:当除数为零时,ComplexDiv 函数报告错误,函数值为零。

    *示例 1
    输入
    4.2+1.5i
    2.5-0.3i

    输出
    6.7+1.2i
    1.7+1.8i
    10.95+2.49i
    1.58517+0.790221i

    #include <stdio.h>
    
    typedef struct complex
    {
        double re;
        double im;
    }COMPLEX;
    void ComplexInput(COMPLEX *complex){
       scanf("%lf%lfi",&complex->re,&complex->im); 
    }
    void ComplexOutput(const COMPLEX *complex){
        printf("%g%+gi",complex->re,complex->im);
    }
    // 复数加法
    COMPLEX ComplexAdd(const COMPLEX *x, const COMPLEX *y)
    {
       COMPLEX p;
        p.re = x->re + y->re;
        p.im = x->im + y->im;
        return p;
    }
    // 复数减法
    COMPLEX ComplexSub(const COMPLEX *x, const COMPLEX *y)
    {
       COMPLEX q;
        q.re = x->re - y->re;
        q.im = x->im - y->im;
        return q;    
    }
    // 复数乘法
    COMPLEX ComplexMul(const COMPLEX *x, const COMPLEX *y)
    {
       COMPLEX r; 
        r.re = (x->re * y->re)-(x->im * y->im);
        r.im = (x->re * y->im)+(x->im * y->re);
       return r; 
    }
    // 复数除法
    COMPLEX ComplexDiv(const COMPLEX *x, const COMPLEX *y)
    {
        COMPLEX s;
        if(y->re!=0&&y->im!=0)
        { double w=(y->re * y->re + y->im * y->im);
        s.re = ((x->re * y->re)+(x->im * y->im))/w;
        s.im = -((x->re * y->im)-(x->im * y->re))/w;}
        if(y->re==0&&y->im==0)
        {printf("Divided by zero!\n");
        return *y;}
       return s; 
    }
    
    int main()
    {
        COMPLEX a, b, p, q, r, s;
        ComplexInput(&a);
        ComplexInput(&b);
        p = ComplexAdd(&a, &b);
        ComplexOutput(&p);
        putchar('\n');
        q = ComplexSub(&a, &b);
        ComplexOutput(&q);
        putchar('\n');
        r = ComplexMul(&a, &b);
        ComplexOutput(&r);
        putchar('\n');
        s = ComplexDiv(&a,&b);
        ComplexOutput(&s);
        putchar('\n');
        return 0;
    }
    

    p, q, r, s分别作为复数加减乘除运算结果输出

    我也是刚开始学C语言,写的不好,勿喷,谢谢

    展开全文
  • C语言 复数四则运算

    千次阅读 2019-06-13 00:52:55
    #include<stdio.h> #include<math.h> struct st_1{ float a,b,c,d; }stu_1; struct st_2{ float shi,fu; }stu_2; void soild_jia(struct st_1 m,struct st_2 n) { n.shi=m.a+m.c;... n.fu=m....

     

     

     

    #include<stdio.h>
    #include<math.h>
    struct st_1{
    	float a,b,c,d;
    }stu_1;
    struct st_2{
    	float shi,fu;
    }stu_2;
    void soild_jia(struct st_1 m,struct st_2 n)
    {
    	n.shi=m.a+m.c;
    	n.fu=m.b+m.d;
    	
    	if(fabs(n.shi)<0.05 && fabs(n.fu)>=0.05)
    	{
    		if(n.fu>0)
    		printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		else if(n.fu<0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		}
    		
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)>=0.05)            //pass
    	{
    		
    		if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d>0) 
    		printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)<0.05)             //pass
    	{
    		if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) + (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) + (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) + (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b<0&&m.d>0)
    		printf("(%.1f%.1fi) + (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    	}
    	else if(fabs(n.fu)>=0.05&&fabs(n.shi)>=0.05)
    	{
    		if(n.shi>0&&n.fu>0)
    		{	
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi>0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi<0&&n.fu>0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi<0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    	}
    	
    }
    void soild_jian(struct st_1 m,struct st_2 n)
    {
    	n.shi=m.a-m.c;
    	n.fu=m.b-m.d;
    	if(fabs(n.shi)<0.05 && fabs(n.fu)>=0.05)                                  
    	{
    		if(n.fu>0)
    		printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		else if(n.fu<0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		}
    		
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)>=0.05)            //pass
    	{
    		if    (m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d>0) 
    		printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)<0.05)             //pass
    	{
    		if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) - (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) - (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) - (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b<0&&m.d>0)
    		printf("(%.1f%.1fi) - (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    	}
    	else if(fabs(n.fu)>=0.05&&fabs(n.shi)>=0.05)
    	{
    		if(n.shi>0&&n.fu>0)
    		{	
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi>0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi<0&&n.fu>0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi<0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    	}
    }
    void soild_cheng(struct st_1 m,struct st_2 n)
    {
    	n.shi=m.a*m.c-m.b*m.d;
    	n.fu=m.a*m.d+m.b*m.c;
    	if(fabs(n.shi)<0.05 && fabs(n.fu)>=0.05)                                 
    	{
    		if(n.fu>0)
    		printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		else if(n.fu<0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		}
    		
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)>=0.05)            //pass
    	{
    		
    		if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d>0) 
    		printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)<0.05)             //pass
    	{
    		if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) * (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) * (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) * (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b<0&&m.d>0)
    		printf("(%.1f%.1fi) * (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    	}
    	else if(fabs(n.fu)>=0.05&&fabs(n.shi)>=0.05)
    	{
    		if(n.shi>0&&n.fu>0)
    		{	
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi>0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi<0&&n.fu>0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi<0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    	}
    }
    void soild_chu(struct st_1 m,struct st_2 n)
    {
    	n.shi=(m.a*m.c+m.b*m.d)/(m.c*m.c+m.d*m.d);
    	n.fu=(m.b*m.c-m.a*m.d)/(m.c*m.c+m.d*m.d);
    	if(fabs(n.shi)<0.05 && fabs(n.fu)>=0.05)                                 
    	{
    		if(n.fu>0)
    		printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		else if(n.fu<0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		}
    		
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)>=0.05)            //pass
    	{
    		
    		if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d>0) 
    		printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)<0.05)             //pass
    	{
    		if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) / (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) / (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) / (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b<0&&m.d>0)
    		printf("(%.1f%.1fi) / (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    	}
    	else if(fabs(n.fu)>=0.05&&fabs(n.shi)>=0.05)
    	{
    		if(n.shi>0&&n.fu>0)
    		{	
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi>0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi<0&&n.fu>0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi<0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    	}
    }
    void input()
    {
    	scanf("%f %f %f %f",&stu_1.a,&stu_1.b,&stu_1.c,&stu_1.d);
    }
    void print()
    {
    	printf("%.1f %.1f %.1f %.1f",stu_1.a,stu_1.b,stu_1.c,stu_1.c,stu_1.d);
    } 
    main()
    {	
    	input();
    	soild_jia(stu_1,stu_2);
    	soild_jian(stu_1,stu_2);
    	soild_cheng(stu_1,stu_2);
    	soild_chu(stu_1,stu_2);
    }

     

    展开全文
  • C语言复数的运算(实验报告).doc实验报告题目复数的四则运算班级 13信管 姓名白浩然 学号201340403034 完成日期2014.05.21 一、需求分析1本演示程序中复数由两个相互之间存在次序关系的实数构成。2演示程序以用户和...

    253b171540df25e1b84436cbe50dfc72.gifC语言复数的运算(实验报告).doc

    实验报告题目复数的四则运算班级 13信管 姓名白浩然 学号201340403034 完成日期2014.05.21 一、需求分析1本演示程序中复数由两个相互之间存在次序关系的实数构成。2演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据和运算结果显示在其后。3程序执行的命令包括1)由输入的实部和虚部生成一个复数;2)两个复数求和;3)两个复数求差;4)两个复数求积;5)从已知复数中分离出实部;6)从已知复数中分离出虚部。4.测试数据1)构造复数2) 复数求和3) 复数求差4) 复数求积5) 提取实部6) 提取虚部2、 编码实现include stdio.hinclude stdlib.hstruct complexfloat real;实部float imag;虚部;构造复数void InitComplexcomplex r1为实部c.imagr2;r2为虚部复数求和void AddComplexcomplex 实部相加c.imagc1.imagc2.imag;虚部相加复数求差void SubComplexcomplex 实部相减c.imagc1.imag-c2.imag;虚部相减复数求积void MulComplexcomplex c.imagc1.real*c2.imagc2.real*c1.imag;分离实部void RealComplexcomplex c,float 分离虚部void ImagComplexcomplex c,float 主程序void maincomplex c,c1,c2;float r,r1,r2,r11,r22,r12,r21;int node;printf请输入要操作的序号n;printf1.构造一个复数 2.两个复数求和 3.两个复数求差n;printf4.两个复数求积 5.分离出实部 6.分离出虚部n;scanfd,whilenode0switchnodecase 1printf输入复数的实部和虚部n;scanff f,InitComplexc,r1,r2;printf构造的复数为ffin,c.real,c.imag;break;case 2printf输入c1的实部和虚部n;scanff f,InitComplexc1,r11,r12;printf输入c2的实部和虚部n;scanff f,InitComplexc2,r21,r22;AddComplexc,c1,c2;printf结果为ffin,c.real,c.imag;break;case 3printf输入c1的实部和虚部n;scanff f,InitComplexc1,r11,r12;printf输入c2的实部和虚部n;scanff f,InitComplexc2,r21,r22;SubComplexc,c1,c2;printf结果为ffin,c.real,c.imag;break;case 4printf输入c1的实部和虚部n;scanff f,InitComplexc1,r11,r12;printf输入c2的实部和虚部n;scanff f,InitComplexc2,r21,r22;MulComplexc,c1,c2;printf结果为ffin,c.real,c.imag;break;case 5printf输入复数的实部和虚部n;scanff f,InitComplexc,r1,r2;RealComplexc,r;printf实部为fn,r;break;case 6printf输入复数的实部和虚部n;scanff f,InitComplexc,r1,r2;ImagComplexc,r;printf虚部为fn,r;break;defaultprintf结束;scanfd,node;3、 调试分析1. 开始时文件后缀写成了“.c”,导致调试多次无法运行,后来改为“.cpp”;2. 多处“f”写成了“d”,导致程序不能正常运行;3. 定义结构体时,最后一个“”后忘记加“;”,导致程序出现错误,以后应多加注意。

    展开全文
  • 复数的四则运算规定为:(a+bi)+(c+di)=(a+c)+(b+d)i,(a+bi)-(c+di)=(a-c)+(b-d)i,(a+bi)?(c+di)=(ac-bd)+(bc+ad)i,(c与d不同时为零)(a+bi)÷(c+di)=[(ac+bd) / (c^2+d^2)]+[(bc-ad) / ...
  • c语言 复数的输入和输出

    千次阅读 2020-04-24 17:14:04
    复数的输入和输出 定义如下复数结构类型: // 定义复数类型 typedef struct { // 实部, 虚部系数 double rp, ip; } COMPLEX; 请编写函数,以“a±bi”的形式输入、输出复数的值。 函数定义 // 输入复数 void ...
  • c语言复数 运用模板

    千次阅读 2018-12-23 19:32:50
    #include #include int main(void) { // complex double k = 1.0+2.0*_Complex_I; //可能原因是编译器还在默认沿用c89标准所以无法编译通过... //creal 复数的实部, cimag 复数的虚部 return 0; }  
  • C语言复数的运算(实验报告).pdf
  • C语言复数的运算实验报告实验报告题目:复数的四则运算班级: 13信管 姓名:白浩然 学号:201340403034 完成日期:2014.05.21一、需求分析1.本演示程序中复数由两个相互之间存在次序关系的实数构成。2.演示程序以...
  • 使用 C 语言实现复数矩阵的求逆,可以运行,使用 VS2012 软件编写。
  • C语言写的复数和实数桌面计算器,包含软件调试版发布版,源代码!
  • c语言复数四运算

    2021-03-29 21:21:41
    //构造复数z1 printf("1 %.2lf+%.2lfi\n",z1.realpart,z1.imagpart); z2=assign(4.0,3.0);//构造复数z2 printf("2 %.2lf+%.2lfi\n",z2.realpart,z2.imagpart); z3=add(z1,z2);//俩个复数相加 printf("3 %.2lf+%.2lfi...
  • C语言复数

    2012-11-15 21:03:12
    实用的C语言复数库 可以在C99标准中调用的简单复数运算及操作
  • c语言定义复数

    2021-05-20 01:31:17
    《用c语言定义复数》由会员分享,可在线阅读,更多相关《用c语言定义复数(3页珍藏版)》请在人人文库网上搜索。1、用 c 语言定义复数实验 0 预备实验实验题目 :用 c 语言的结构类型定义表示复数(1) 用浮点型(2) 实行 ...
  • Excel或C语言复数运算

    2020-07-04 12:56:49
    五、C语言复数运算 ------------------------------------------------------------------------------------------------------ 一、简介 在电路设计中我们会遇到一些诸如交流信号过电容、电感,阻...
  • C语言复数计算器

    2011-10-08 23:31:45
    C语言编写的复数计算器,用结构体存储复数的实部和虚部,供大家作为数据结构课程实验的参考~!确定能运行通过的~
  • c语言 复数的比较

    2020-04-24 21:20:27
    复数的比较 请编写函数,比较复数的值是否相等。 函数定义 // 判断相等(带误差) int ComplexEq(const COMPLEX *x, const COMPLEX *y); // 判断不等(带误差) int ComplexNe(const COMPLEX *x, const COMPLEX *y); ...
  • C语言实现的简单的复数计算器,供大家一起共同分享学习。
  • C语言 复数计算

    2021-03-21 23:16:15
    C语言 复数计算 官方链接 https://docs.microsoft.com/en-us/cpp/c-runtime-library/complex-math-support?view=msvc-160 描述: C 语言 complex 运算: _FCbuild() _Cbuild void calc_vals(int i) { /* Maximum...
  • C语言实现复数运算

    万次阅读 多人点赞 2019-10-10 19:36:18
    C99标准中已经引入了复数类型,使用时需要包含头文件complex.h。但Visual C++ 6.0完全不支持C99标准,推荐使用gcc编译器对.c文件进行编译执行。
  • C语言中没有复数运算,只有实数运行,为此,用结构体定义复数,并实现其四则运算

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,263
精华内容 6,105
关键字:

c语言复数

c语言 订阅