复数由实部和虚部,虚部只需要加上"i"即可。
但现在想输出时更贴合正常书写,比如
1. 正数开头时不带"+",+2,+6之类的就不符合书写习惯。
同样地,实部为零时,+3i、+6i也不符合。
2. 另外,当虚部为1或-1时,我们会写成i或-i,而不是1i或-1i
3. 注意0的输出吧
主要是1,2的要求。
现在问题是我的输出好像有点随机,实部为正时一会儿带"+"一会儿不带
谢谢大佬们了
下面是输出函数,定义了Complex类(包括实部real和虚部image,都是float)
void Complex::display()
{
if(fabs(real)>1e-10) //实部不为零
{
cout<
if(fabs(image)>1e-10) //虚部不为零
{
if(fabs(fabs(image)-1)>1e-10) cout<
else
{
if(image>0) cout<<"+i"<
else cout
}
}
else cout
}
else //实部为零
{
if(fabs(image)>1e-10)
{
if(fabs(fabs(image)-1)>1e-10) cout<
else
{
if(image>0) cout<<"i"<<endl;
else cout<<"-i"<<endl;
}
}
else cout<<"0"<<endl;
}
}
输出为下
15个测试
c1(1,1),c2(1,2),c3(1,-1),c4(1,-2),c5(-1,1)
c6(-1,2),c7(-1,-1),c8(-1,-2),c9(0,0),c10(0,1)
c11(0,2),c12(0,-1),c13(0,-2),c14(1,0),c15(-1,0)
具体输出
1+i
1+2i
+1-i
+1-2i
-1+i
-1+2i
-1-i
-1-2i
0
i
+2i
-i
-2i
+1
-1
请按任意键继续. . .