精华内容
下载资源
问答
  • C语言结构体复数四则运算
    千次阅读
    2021-03-10 22:08:16
    /*2021/3/10*/ 
    #include<stdio.h>
    typedef struct{
    	double a;
    	double b;	
    }Complex;
    void InitC(Complex &C) 
    {
    	scanf("%lf%lf",&C.a,&C.b);	
    }
    Complex mulC(Complex C1,Complex C2)
    {
    	Complex C3;
    	C3.a=C1.a*C2.a-C1.b*C2.b;
    	C3.b=C1.a*C2.b+C2.a*C1.b;
    	return C3;
    }
    Complex divC(Complex C1,Complex C2)
    {
        Complex C4;
        C4.a=1.0*(C1.a*C2.a+C1.b*C2.b)/(C2.a*C2.a+C2.b*C2.b);
        C4.b=1.0*(C1.b*C2.a-C1.a*C2.b)/(C2.a*C2.a+C2.b*C2.b);
        return C4;
    }
    Complex add(Complex C1,Complex C2)
    {
    	Complex C5;
    	C5.a=C1.a+C2.a;
    	C5.b=C1.b+C2.b;
    	return C5;
    }
    Complex minus(Complex C1,Complex C2)
    {
    	Complex C6;
    	C6.a=C1.a-C2.a;
    	C6.b=C1.b-C2.b;
    	return C6;
    }
    int main()
    {
    	Complex C1,C2,C3,C4,C5,C6;
    	
    	printf("结构体实现复数运算的+、-、*、/(纵向输入)\n");
    	
    	InitC(C1);
    	InitC(C2);
    	
    	
    	
    	
    
    	/*乘法*/
    	C3=mulC(C1,C2);
    	if(C3.b>0)
    	{
    		printf("\n乘法:%.2f+%.2fi",C3.a,C3.b);
    	}
    	else if(C3.b==0)
    	{
    		printf("\n乘法:%.2f",C3.a);
    	}
    	else
    	{
    		printf("\n乘法:%.2f%.2fi",C3.a,C3.b);
    	}
    	/*除法*/ 
    	
    	if(C4.a==0.00&&C4.b==0.00) 
    	{
    		printf("\n除法;0");
    	}
    	else
    	{ 
    	  C4=divC(C1,C2);
    	  if(C4.b>0)
    	  {
    		 printf("\n除法:%.2f+%.2fi",C4.a,C4.b);
          }
    	  else if(C4.b==0)
    	  {  
    		printf("\n除法:%.2f",C4.a);
    	  }
    	  else
    	  {
    		  printf("\n除法:%.2f%.2fi",C4.a,C4.b);
    	  }
    	} 
    	
    	/*加法*/
    	C5=add(C1,C2);
    		if(C5.b>0)
    	{
    		printf("\n加法:%.2f+%.2fi",C5.a,C5.b);
    	}
    	else if(C5.b==0)
    	{
    		printf("\n加法:%.2f",C5.a);
    	}
    	else
    	{
    		printf("\n加法:%.2f%.2fi",C5.a,C5.b);
    	}
    	/*减法 */	
    	C6=minus(C1,C2);
    		if(C6.b>0)
    	{
    		printf("\n减法:%.2f+%.2fi",C6.a,C6.b);
    	}
    	else if(C6.b==0)
    	{
    		printf("\n减法:%.2f",C6.a);
    	}
    	else
    	{
    		printf("\n减法:%.2f% .2fi",C6.a,C6.b);
    	}
    	return 0;
    	
    }
    	

     

    更多相关内容
  • 复数四则运算

    2018-06-25 23:25:37
    数学中复数运算代码,简介明了,方便阅读,实用性极强。代码经过多次优化。
  • PTA:复数四则运算

    2022-03-29 18:17:18
    //a为复数1的实部,b为复数1的虚部,c,d同理。 //为求方便,定义为全局变量. void formula(char op);//op代表运算符(加减乘除) void opration(float e,float f,char op);//e代表运算后的实部,f代表运算后的虚部 ...

    在网上看了一圈,发现这道题能ac(all correct)解法的代码量都比较大,个人认为本人的代码量有大幅优化,且减少了代码阅读量,特此发布,希望能帮助一些朋友。

    题目:

    样例1

    2 3.08 -2.04 5.06

    输出1

    (2.0+3.1i) + (-2.0+5.1i) = 8.1i
    (2.0+3.1i) - (-2.0+5.1i) = 4.0-2.0i
    (2.0+3.1i) * (-2.0+5.1i) = -19.7+3.8i
    (2.0+3.1i) / (-2.0+5.1i) = 0.4-0.6i
    

    样例2

    1 1 -1 -1.01
    

    输出2

    (1.0+1.0i) + (-1.0-1.0i) = 0.0
    (1.0+1.0i) - (-1.0-1.0i) = 2.0+2.0i
    (1.0+1.0i) * (-1.0-1.0i) = -2.0i
    (1.0+1.0i) / (-1.0-1.0i) = -1.0
    

    参考代码:

    #include<stdio.h>
    
    float a, b, c, d;//a为复数1的实部,b为复数1的虚部,c,d同理。
                     //为求方便,定义为全局变量.
    
    void formula(char op);//op代表运算符(加减乘除)
    
    void opration(float e,float f,char op);//e代表运算后的实部,f代表运算后的虚部
    
    int main(void)
    {
        scanf("%f%f%f%f", &a, &b, &c, &d);
    
        opration(a+c, b+d, '+');//四个opration分别对应加减乘除
    
        opration(a-c, b-d, '-');
    
        opration(a*c - b*d, a*d + b*c, '*');
    
        opration((a*c + b*d) / (c*c + d*d), (b*c - a*d) / (c*c + d*d), '/');
    
        return 0;
    }
    
    void formula(char op)//输出算式
    {
        printf("(%.1f", a);
    
        if(b>=0)
            printf("+");//若b为负数,则不输出"+"号
    
        printf("%.1fi) %c (%.1f", b, op, c);
    
        if(d>=0)
            printf("+");//若d为负数,则不输出"+"号
            
        printf("%.1fi) = ", d);
    }
    
    void opration(float e,float f,char op)//输出结果
    {
        formula(op);
    
        if((int)(e*10))//题干隐性定义了判断实部结果是否为零的标准:只看到小数点后一位
                       //若小数点后一位以前全为零,则实部结果为0(比如实部为0.01则判定为0)
                       //所以此处e乘10后强制类型转换为int再判断就可满足题干要求
            printf("%.1f", e);
    
        if((int)(f*10))//此处同理
        {
            if ((f > 0) && (int)(e*10))//若f>0且实部e输出了,则输出加号
                printf("+");
    
            printf("%.1fi", f);
        }
        else if (!(int)(e*10))//若e和f都没输出,则打印0.0
            printf("0.0");
    
        printf("\n");
    }

    展开全文
  • 数据结构实验题,C语言实现了:1、定义复数类型,构造其数据结构。 2、实现两个复数的加、减、乘、除四则运算
  • 数据结构,实验一,复数四则运算代码,c语言编程实现
  • PTA-复数四则运算 (15 分) 像这种四则运算模拟,这样写最简单清晰了。 #include <iostream> #include <cmath> #include <cstring> using namespace std; void f(double x, double y, int t) { if...

    PTA-复数四则运算 (15 分)

    像这种四则运算模拟,这样写最简单清晰了。

    #include <iostream>
    #include <cmath>
    #include <cstring>
    using namespace std;
    void f(double x, double y, int t) {
    	if(t == 1){
    		if(y < 0) printf("(%.1lf%.1lfi)", x, y);
    		else printf("(%.1lf+%.1lfi)", x, y);
    	}
    	else {
    		if(abs(x) < 0.05 && abs(y) < 0.05) printf("0.0");
    		else if(abs(x) < 0.05) printf("%.1lfi", y);
    		else if(abs(y) < 0.05) printf("%.1lf", x);
    		else {
    			if(y < 0) printf("%.1lf%.1lfi", x, y);
    			else printf("%.1lf+%.1lfi", x, y);
    		}
    	}
    }
    int main() {
    	double a1, b1, a2, b2;
    	cin >> a1 >> b1 >> a2 >> b2;
    	f(a1, b1, 1);printf(" + ");f(a2, b2, 1);printf(" = ");f(a1 + a2, b1 + b2, 0);printf("\n");
    	f(a1, b1, 1);printf(" - ");f(a2, b2, 1);printf(" = ");f(a1 - a2, b1 - b2, 0);printf("\n");
    	f(a1, b1, 1);printf(" * ");f(a2, b2, 1);printf(" = ");f(a1*a2-b1*b2, a1*b2+b1*a2, 0);printf("\n");
    	f(a1, b1, 1);printf(" / ");f(a2, b2, 1);printf(" = ");f((a1*a2+b1*b2)/(a2*a2+b2*b2),(b1*a2-a1*b2)/(a2*a2+b2*b2), 0);
    } 
    
    展开全文
  • 设计一个可进行复数运算的演示程序。

    【实验目的】抽象数据类型的实现,构造抽象数据类型以及结构体,以实现复数的多种计算完成创建数据结构的基本操作的函数。

    【问题描述】设计一个可进行复数运算的演示程序。

    【基本要求】实现下列七种基本运算:1)由输入的实部和虚部生成一个复数;2)复数的显示;3)两个复数求和;4)两个复数求差;5)两个复数求积;6)从已知复数中分离出实部;7)从已知复数中分离出虚部。


    一、结果

     

    二、代码

    #include<stdio.h>
    typedef struct
    {
    	float real;
    	float imag;
    }complex;
    void show(complex x)
    {
    	if (x.real != 0)
    	{
    		if (x.imag > 0)
    			printf("%.2f+i%.2f\n", x.real, x.imag);
    		else
    			if (x.imag == 0)
    				printf("%.2f\n", x.real);
    			else
    			{
    				x.imag = -x.imag;
    				printf("%.2f-i%.2f\n", x.real, x.imag);
    			}
    	}
    	else
    	{
    		if (x.imag > 0)
    			printf("i%.2f\n", x.imag);
    		else
    			if (x.imag == 0)
    				printf("%.2f\n", x.real);
    			else
    			{
    				x.imag = -x.imag;
    				printf("-i%.2f\n", x.imag);
    			}
    	}
    }
    void add(complex x, complex y)
    {
    	complex sum;
    	sum.real = x.real + y.real;
    	sum.imag = x.imag + y.imag;
    	show(sum);
    }
    void minus(complex x, complex y)
    {
    	complex sub;
    	sub.real = x.real - y.real;
    	sub.imag = x.imag - y.imag;
    	show(sub);
    }
    void multi(complex x, complex y)
    {
    	complex mul;
    	mul.real = x.real * y.real - x.imag * y.imag;
    	mul.imag = x.real * y.imag + x.imag * y.real;
    	show(mul);
    }
    float separate_real(complex x)
    {
    	return x.real;
    }
    float separate_imag(complex x)
    {
    	return x.imag;
    }
    int main()
    {
    	int i;
        complex a, b;
    	printf("需要输入复数个数(1或2):");
    	scanf_s("%d", &i);
    	if (i == 1) {
    		printf("实部、虚部分别输入:");
    		scanf_s("%f%f", &a.real, &a.imag);
    		printf("\n显示:a=");
    		show(a);
    	}
    	else {
    		printf("(1)分别输入两个复数的实部和虚部:");
    		scanf_s("%f%f%f%f", &a.real, &a.imag, &b.real, &b.imag);
    		printf("\n(2)显示:a=");
    		show(a);
    		printf("b=");
    		show(b);
    		printf("\n(3)和:a+b=");
    		add(a, b);
    		printf("\n(4)差:a-b=");
    		minus(a, b);
    		printf("b-a=");
    		minus(b, a);
    		printf("\n(5)乘积:a*b=");
    		multi(a, b);
    		printf("(6)实部:a.real=%.2f,b.real=%.2f", separate_real(a), separate_real(b));
    		printf("\n(7)虚部:a.imag=%.2f,b.imag=%.2f", separate_imag(a), separate_imag(b));
    		return 0;
    	}
    }
    展开全文
  • typedef struct //定义复数类型 { float realPart; float imagPart; }Complex; void InitComplex(Complex &Z)//输入两个复数 { float x,y; cout<<"请输入一个复数"<<endl; cin>>x>...
  • 复数四则运算(PTA)

    千次阅读 2019-10-02 10:14:49
    7-12 复数四则运算 (15 分) 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出...
  • C++编写复数四则运算程序
  • 此计算器输入是一个复数和一个符号,一对一对的输入的方法进行,不能用括号; 但是支持复合运算,比如:"a+bi + c+di * e+fi ="之类的式子,由于是数据结构课程的实验,要求一定下载量,所以不用资源分,请大家帮我加点下载量...
  • 7-3 复数四则运算 (15 分)

    千次阅读 2019-09-22 21:37:36
    7-3 复数四则运算 (15 分) 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出格式: 分别在4行...
  • C++简单的复数四则运算源码(cpp),代码比较容易看懂
  • import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); double a,b,c,d,e,f; a=scan.nextDouble(); b=scan.nextDouble();...
  • 用结构体来实现复数四则运算,挺难的。
  • 抽象数据类型(三元组ADT、复数四则运算) 数据结构 湖南大学
  • 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部...python 可以直接用复数四则运算,捡了个大便宜,但比较坑的是 python 用
  • 7-32 复数四则运算

    2020-01-20 18:26:46
    7-32 复数四则运算 (15分) 文章目录7-32 复数四则运算 (15分)题目描述:输入格式:输出格式:输入与输出样例:思路分析:代码:测试样例点: 题目描述: 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式...
  • #7-8 复数四则运算 (10分)

    千次阅读 2020-04-03 15:44:24
    #7-8 复数四则运算 (10分)** ** 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出格式: 分别...
  • 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....
  • 7-36 复数四则运算 (15分)

    千次阅读 2019-12-05 10:37:55
    一、题目要求 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部...如果结果的实部或者虚部为0,不输出。如果结果为0...
  • 高二数学复数四则运算PPT学习教案.pptx
  • 7-1 复数四则运算 (15 分)

    千次阅读 2019-06-11 22:25:51
    7-1 复数四则运算 (15 分) 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出格式: 分别在4行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,959
精华内容 7,583
关键字:

复数四则运算