蓝桥杯 算法训练 P1103 (结构体指针)
2016-03-06 09:58
309 查看
题目链接
编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:
要求:(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
分析:一看就是一道大水题。
看到结构体指针。好久没编过了。不如试一试吧。(当然也可以不用结构,直接计算就行)
结果出现了几个问题:
1:结构体指针没有初始化。
2.复数的乘除法一开始弄出了。
复数运算规则:(百度百科):http://baike.baidu.com/link?url=9TakBcJvI2l0U04GPFqVrS0Pdsu9fOLYD5SH3jJPqcChCtiN1quIhFSMMjIy383UrOYFRh3O-9Prad8J3mwd_
编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:
要求:(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
分析:一看就是一道大水题。
看到结构体指针。好久没编过了。不如试一试吧。(当然也可以不用结构,直接计算就行)
结果出现了几个问题:
1:结构体指针没有初始化。
2.复数的乘除法一开始弄出了。
复数运算规则:(百度百科):http://baike.baidu.com/link?url=9TakBcJvI2l0U04GPFqVrS0Pdsu9fOLYD5SH3jJPqcChCtiN1quIhFSMMjIy383UrOYFRh3O-9Prad8J3mwd_
#include"stdio.h" #include"stdlib.h" struct Num{ double a; double b; }; double a1,b1,a2,b2; void Input() { scanf("%lf%lf%lf%lf",&a1,&b1,&a2,&b2); // printf("%lf%lf%lf%lf\n",a1,b1,a2,b2); } Num *add() { Num *ans; ans=(Num *)malloc(sizeof(Num));//初始化 ans->a=a1+a2; ans->b=b1+b2; return ans; } Num *sub() { Num *ans; ans=(Num *)malloc(sizeof(Num)); ans->a=a1-a2; ans->b=b1-b2; return ans; } Num *mul() { Num *ans; ans=(Num *)malloc(sizeof(Num)); ans->a=a1*a2-b1*b2; ans->b=a1*b2+a2*b1; return ans; } Num *div() { Num *ans; ans=(Num *)malloc(sizeof(Num)); if(a2==0||b1==0||b2==0) return NULL; double den=a2*a2+b2*b2; ans->a=(a1*a2+b1*b2)/den; ans->b=(b1*a2-a1*b2)/den; return ans; } int main() { char op; Num *ans; ans=(Num *)malloc(sizeof(Num)); scanf("%c",&op); Input(); switch(op) { case '+':ans=add();break; case '-':ans=sub();break; case '*':ans=mul();break; case '/':ans=div();break; default :break; } printf("%.2lf+",ans->a);//奇怪输出格式。 printf("%.2lfi",ans->b); return 0; }
相关文章推荐
- PAT1040有几个PAT
- 解析Hibernate中的持久化—ORM(转载)
- poj 2676 Sudoku
- Go代理,修改标题
- iOS进阶之旅-图片裁剪
- iOS8- UIAlertViewController
- python实现PMI(求词语关联性)
- cdb与pdb的一些常用查询命令
- EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS的删除创建
- 需要学习的内容
- bzoj4010: [HNOI2015]菜肴制作
- IOS UIAlertView(警告框)方法总结
- 设计模式(Design Patterns)
- update case when
- 编译samba遇到need autoconf 2.53 or later to build samba from GIT
- 通过注冊表获得操作系统语言设置
- 机器学习——PCA算法
- AVL平衡树(java实现)
- 一个由java实现的打地鼠游戏
- paper 36 :[教程] 基于GridSearch的svm参数寻优