算法联系——复数运算
来源:互联网 发布:crm系统数据 编辑:程序博客网 时间:2024/06/05 16:41
编程实现两个复数的运算。设有两个复数和 ,则他们的运算公式为:
要求:(1)定义一个结构体类型来描述复数。
(2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。
(3)必须使用结构体指针的方法把函数的计算结果返回。
说明:用户输入:运算符号(+,-,*,/) a b c d.
输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。
输入:
- 2.5 3.6 1.5 4.9
输出:
1.00+-1.30i
C++代码:
#include<stdio.h>#include <stdlib.h> struct node{ doublea; doubleb;}; node *add(node x,node y){ node*w=(node *)malloc(sizeof(node)); w->a=x.a+y.a; w->b=x.b+y.b; returnw;}node *sub(node x,node y){ node*w=(node *)malloc(sizeof(node)); w->a=x.a-y.a; w->b=x.b-y.b; returnw;}node *mul(node x,node y){ node*w=(node *)malloc(sizeof(node)); w->a=x.a*y.a-x.b*y.b; w->b=x.a*y.b+y.a*x.b; returnw;}node *div(node x,node y){ node*w=(node *)malloc(sizeof(node)); w->a=(x.a*y.a+x.b*y.b)/(y.a*y.a+y.b*y.b); w->b=(x.b*y.a-x.a*y.b)/(y.a*y.a+y.b*y.b); returnw;}int main(){ charc; structnode n,m; structnode *s; scanf("%c%lf %lf %lf %lf",&c,&n.a,&n.b,&m.a,&m.b); switch(c) { case'+': s=add(n,m); break; case'-': s=sub(n,m); break; case'*': s=mul(n,m); break; case'/': s=div(n,m); } printf("%.2lf+%.2lfi",s->a,s->b); return 0;}
0 0
- 算法联系——复数运算
- 算法-->复数运算
- 算法训练 P1103 复数运算
- 蓝桥杯 算法训练 复数运算
- 运算符重载—复数的计算
- 算法训练 P1103 【复数运算,指针】
- 蓝桥杯算法训练 P1103(复数运算)
- 实训C++语言设计——实现复数运算
- OJ——复数类--重载运算符+
- OJ—— 复数类--重载运算符2+
- OJ——复数类 重载运算符3+
- java复数矩阵运算库——Jampack
- C++运算符重载示例——复数
- 第八周—1.1实现复数中的运算符重载
- 第八周—1.3实现复数中的运算符重载
- C++ : 复数运算“<<”函数重载和“+”、“—”重载
- 复数类中的运算符重载—友元函数
- 复数运算
- CUDA/ GPU: CUDA核函数的运行参数
- 蓝桥杯 合并石子
- BZOJ 4580: [Usaco2016 Open]248
- 算法练习——List_Throw
- 深入探究Blocks----------截获不同种类的自动变量
- 算法联系——复数运算
- 工厂模式和抽象工厂模式
- CCF201512-3画图
- lucene6 IntPoint
- Mac 常用命令
- 试题库问题
- <jsp:include page>与<%@include file>
- 基于广域网的主从分布式爬虫系统
- 【正一专栏】春日随感—赢在起跑线上