算法提高 6-17复数四则运算  
时间限制:1.0s   内存限制:512.0MB
    
  设计复数库,实现基本的复数加减乘除运算。
  输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。
  注意考虑特殊情况,无法计算时输出字符串"error"。
样例输入
2 4 * -3 2
样例输出
-14-8i
样例输入
3 -2 + -1 3
样例输出
2+1i
 
注:之前有个问题解决不了:怎么视情况保留小数点后一位、当计算出的小数位为0时则不保留小数。
所以有个测试点一直不过。
 
不过后来查阅后学会用%g——%g用来输出实数,根据数值大小,自动选f或e格式不输出无意义的零。
 

之前没过的代码:

 #include<stdio.h>
int main(){
char sign;
float a,b,c,d;
scanf("%f %f %c %f %f",&a,&b,&sign,&c,&d);
if(c== && d==){
printf("error");
}else if(sign=='+'){
printf("%.0f+%.0fi",a+c,b+d);
}else if(sign=='-'){
printf("%.0f%.0fi",a-c,b-d);
}else if(sign=='*'){
printf("%.0f%.0fi",a*c-b*d,a*d+b*c);
}else if(sign=='/'){
printf("%.1f%.1fi",(a*c+b*d)/(c*c+d*d),(b*c-a*d)/(c*c+d*d));
}else{
printf("error");
}
}

修改后通过的代码:

 #include<stdio.h>
int main(){
char sign;
double a,b,c,d;
scanf("%lf %lf %c %lf %lf",&a,&b,&sign,&c,&d);
if(c== && d==){
printf("error");
}else if(sign=='+'){
printf("%g+%gi",a+c,b+d);
}else if(sign=='-'){
printf("%g%gi",a-c,b-d);
}else if(sign=='*'){
printf("%g%gi",a*c-b*d,a*d+b*c);
}else if(sign=='/'){
printf("%g%gi",(a*c+b*d)/(c*c+d*d),(b*c-a*d)/(c*c+d*d));
}else{
printf("error");
}
}
 
 

C语言 · 复数四则运算的更多相关文章

  1. Java实现 蓝桥杯 算法提高 复数四则运算

    算法提高 6-17复数四则运算 时间限制:1.0s 内存限制:512.0MB 提交此题 设计复数库,实现基本的复数加减乘除运算. 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔:输 ...

  2. 简单的C语言小学四则运算设计

    题目:设计一个简单的四则运算编辑器 思路:我使用的是C语言编程,看到题目首先要随机出3个随机数,其中两个为100以内的随机数(a,b),一个为0~3的随机数(k). k值的变化使得+ - * /的变化 ...

  3. C语言实现四则运算

    学生:宋丹丹 张潇裕 #include<iostream>#include<ctime>using namespace std;void main(){ int x1,x2,a ...

  4. C++复数四则运算的实现

    程序主要实现复数的加减乘,数乘,取共轭功能. 将所有函数都定义为了成员函数. 使用库函数atof将字符串转换为浮点型数据. 函数主要难点在于处理输入.由于需要判断输入是选择退出还是继续,所以用字符串来 ...

  5. PTA 复数四则运算

    本题要求编写程序,计算2个复数的和.差.积.商. 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部.题目保证C2不为0. 输出格式 ...

  6. C语言 · 复数求和

    算法提高 复数求和   时间限制:1.0s   内存限制:512.0MB      从键盘读入n个复数(实部和虚部都为整数)用链表存储,遍历链表求出n个复数的和并输出. 样例输入: 3 3 45 21 ...

  7. 算法笔记_156:算法提高 6-17复数四则运算(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 设计复数库,实现基本的复数加减乘除运算. 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔:输出时按a+bi的格式在屏幕上打印结果 ...

  8. C语言 · 复数归一化

     算法提高 复数归一化   时间限制:1.0s   内存限制:512.0MB      编写函数Normalize,将复数归一化,即若复数为a+bi,归一化结果为a/sqrt(a*a+b*b) + i ...

  9. 实验1--用C语言编程四则运算

    #include<stdio.h>#include<stdlib.h>#include <time.h>#define N 30main(){int a,b,k,i ...

随机推荐

  1. (转)使用百度 BAE做SVN服务器

    转自:https://www.sinosky.org/bae-svn.html#comment-1775 从这里下载 目前,无论是Windows平台.Linux平台还是Mac平台都有比较成熟的SVN客 ...

  2. (回溯法)数组中和为S的N个数

    Given a list of numbers, find the number of tuples of size N that add to S. for example in the list ...

  3. xcode_6_beta.dmg

    http://pan.baidu.com/s/1qW2lWoW password:5nty

  4. 如何使用angularjs操作cookie

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  5. 根据wsdl文件生成java代码

    具体操作步骤: 1.  运行cmd命令 输入 C:\jdk-1_6_0_31\bin (根据自己的JDK的安装位置而定) 2.  新建gen.bat文件 3.  gen.bat文件内容为:wsimpo ...

  6. Ubuntu 设置UFW防火墙

    1:安装 sudo apt-get install ufw 2:启用 sudo ufw enable sudo ufw default deny 运行以上两条命令后,开启了防火墙,并在系统启动时自动开 ...

  7. pselect 和 select

    pselect函数是由POSIX发明的,如今许多Unix变种都支持它. #include <sys/select.h> #include <signal.h> #include ...

  8. HBase权威指南 高清中文版 PDF(来自linuxidc)

      内容提要 <HBase权威指南>由乔治(Lars George)著,探讨了 如何通过使用与HBase高度集成的Hadoop将 HBase的可 伸缩性变得简单:把大型数据集分布到相对廉价 ...

  9. ubuntu截图工具

    ubuntu截图工具   首先,我们用apt-get  install 去安装一个,scrot 主要用在命令行下,它使用 imlib2 库来抓取并保存图像                 sudo a ...

  10. C#:SqlServer操作的知识点

      1.检查数据库连接的有效性 var client = new System.Net.Sockets.TcpClient(); var ar = client.BeginConnect(host, ...