C++的问题:定义描述复数的结构体类型变量,并实现复数之间的加减法运算和输入输出

 我来答
子时待宵暗
推荐于2017-12-15
知道答主
回答量:5
采纳率:0%
帮助的人:2.3万
展开全部

#include "stdafx.h"
#include <iostream>
using namespace std;
struct complex //定义一个复数结构体
{
 int real;      //实数,数据类型根据自己的要求改吧
 int imaginary; //虚数,同上
 friend complex operator + (complex a, complex b);    
 //重载运算符“+”,其运算结果为复数,即返回类型为complex
 friend complex operator - (complex a, complex b);    
 //同上
 friend ostream & operator << (ostream &out, complex a);
 //重载操作符<<,这里用到输出流ostream
 void setnumber(int a, int b)
 //用于输入的函数,这里重载>>的话会很麻烦,
 //你可以自己尝试一下输入an+bi并读取,并没有依次输入系数简单
 {
  real = a;
  imaginary = b;
 }
};
complex operator + (complex a, complex b)
{
 int x = a.real + b.real;          //复数加法:实数加实数
 int y = a.imaginary + b.imaginary;//虚数加虚数
 complex temp;                     //声明一个复数temp
 temp.setnumber(x, y);             //将计算的结果赋给temp
 return temp;                      //并返回
}
complex operator - (complex a, complex b)//同上
{
 int x = a.real - b.real;       
 int y = a.imaginary - b.imaginary;
 complex temp;                    
 temp.setnumber(x, y);           
 return temp;                     
}
ostream & operator << (ostream &out, complex a)
//这里我分类讨论了一下,为了省略0产生的赘余
{
 if (a.real == 0)
  return out << a.imaginary << "i";
 else if (a.imaginary==0)
  return out << a.real;
 else
  return out << a.real << "+" << a.imaginary << "i";
}
//乘除法的话根据这个自己套公式吧
void main()
//主函数根据要求自己写吧
{
 complex a;
 complex b;
 cout << "请分别输入第一个数的实数和虚数部分" << endl;
 int ar, ai;
 cin >> ar >> ai;
 a.setnumber(ar, ai);
 cout << "请输入另一个数的实数和虚数部分" << endl;
 int br, bi;
 cin >> br >> bi;
 b.setnumber(br,bi);
 cout << "a+b=" << a + b << endl;
 cout << "a-b=" << a - b << endl;
 //输入部分可以用for循环和数组来满足多个复数的声明和赋值
}

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
百度网友d8d14db
2016-01-26 · TA获得超过3.8万个赞
知道大有可为答主
回答量:3.2万
采纳率:81%
帮助的人:6260万
展开全部
C++的问题:定义描述复数的结构体类型变量,并实现复数之间的加减法运算和输入输出我记得在书本上直接有一个案例的,直接引用模板即可解决。
追问
什么书?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式