复数运算问题,在线等待,解决马上给分!!!

时间:2022-11-10 18:41:55
我现在想在控制台下写一个进行复数运算的程序,现在已经可以在程序里面用complex进行运算了,打算在输入两个复数和运算符回车之后,给出运算结果,但是我不知道如何得到输入的复数,我也不想让程序提示分别输入实部和虚部,而是想输入完整的复数(eg:3+4i),如果实部和虚部都分别用float类型来存储,那如果输入3i(而不是0+3i),我就不知道该如何得到这个从键盘输入的复数了,初学,高手指教,谢谢,解决马上结贴!!!

12 个解决方案

#1


按照字符串读入
然后处理

#2


我的思路:
先查找有没有'+',如果有,则进入有实部和虚部的处理分支
否则如果有'i',进入只有虚部的处理分支
再否则,进入只有实部的处理分支

主要就这三种情况了

#3


#include <complex>

complex<double> c,a(1,2),b(2,3);

c=a+b;
c=a-b;
c=a*b;
c=a/b;

#4


对于只有实部的处理最简单,直接转换成数值型就可以了
如果实float类型,可以用atof(buffer)  //buffer就是实部的字符串

对于虚部,可以逐个读取字符直到'i',然后赋一个'\0'
再用atof转换成数值型

对于实部和虚部都有,可以把上面两种情况综合一下就ok了

#5


complex模板定义在complex头的名字空间std中,加上
using namespace std;
你就可以使用它了。

#6


同意 Skt32(荒城之月) 
有现成的东西

#7


这样自己动脑筋的机会就少了

到真正需要自己做东西的时候。。。。。。

#8


To FAICHEN(CC) and  Skt32(荒城之月):
我知道用complex可是实现复数的加减乘除、求模等运算
但是我现在只是不知道如何获得一个从键盘输入的完整的复数
To SeainBlue(爱海):
你的思路我懂了,但是感觉有点麻烦,还没有更好的办法了吗?可以直接获得输入的复数了吗? 

#9


其实并不麻烦
就是读取字符串,然后转换成数值型

我觉得除了用complex,就只能像我这么做了

#10


弄个结构体怎么样?

#11


不是啊,我是搞不懂为什么你们都说用complex就不用像你那么做了
即使用了complex,还不是要得到这个复数(3+4i)的实部和虚部吗?

#12


提示以座标的形式输入不就可以了吗

#1


按照字符串读入
然后处理

#2


我的思路:
先查找有没有'+',如果有,则进入有实部和虚部的处理分支
否则如果有'i',进入只有虚部的处理分支
再否则,进入只有实部的处理分支

主要就这三种情况了

#3


#include <complex>

complex<double> c,a(1,2),b(2,3);

c=a+b;
c=a-b;
c=a*b;
c=a/b;

#4


对于只有实部的处理最简单,直接转换成数值型就可以了
如果实float类型,可以用atof(buffer)  //buffer就是实部的字符串

对于虚部,可以逐个读取字符直到'i',然后赋一个'\0'
再用atof转换成数值型

对于实部和虚部都有,可以把上面两种情况综合一下就ok了

#5


complex模板定义在complex头的名字空间std中,加上
using namespace std;
你就可以使用它了。

#6


同意 Skt32(荒城之月) 
有现成的东西

#7


这样自己动脑筋的机会就少了

到真正需要自己做东西的时候。。。。。。

#8


To FAICHEN(CC) and  Skt32(荒城之月):
我知道用complex可是实现复数的加减乘除、求模等运算
但是我现在只是不知道如何获得一个从键盘输入的完整的复数
To SeainBlue(爱海):
你的思路我懂了,但是感觉有点麻烦,还没有更好的办法了吗?可以直接获得输入的复数了吗? 

#9


其实并不麻烦
就是读取字符串,然后转换成数值型

我觉得除了用complex,就只能像我这么做了

#10


弄个结构体怎么样?

#11


不是啊,我是搞不懂为什么你们都说用complex就不用像你那么做了
即使用了complex,还不是要得到这个复数(3+4i)的实部和虚部吗?

#12


提示以座标的形式输入不就可以了吗