C++ 一个复数类,运算符重载 + ,实现复数和复数的相加.

问题描述:

C++ 一个复数类,运算符重载 + ,实现复数和复数的相加.
一个复数类,运算符重载 + ,实现复数和复数的相加.输入一组复数,每行一个复数,直到输入0结束.输出这组复数的结果.
输入示例
3+2i
2+i
3
2i
0
输出示例
8+5i
我只想知道如果输入的是3+8i,如何将3输入到此复数类的实部,8输入到虚部~
1个回答 分类:综合 2014-11-09

问题解答:

我来补答
 #include <iostream>
#include<stdio.h>
using namespace std;
class Complex {
public:
 Complex (int r=0, int i=0) : m_r (r), m_i (i) {}
 void print (void) const {
  cout << m_r << '+' << m_i << 'i' << endl;
 }
 const Complex operator+ (const Complex& c) const {
  return Complex (m_r + c.m_r, m_i + c.m_i);
 }
 private:
 int m_r; // 实部
 int m_i; // 虚部

};
int main (void) {
    int r,i;
    printf("请输入一个复数形如:3+8i\n");
    scanf("%d+%di",&r,&i);
    Complex c1(r,i);//现在就是复数3+8i
    //接下来的代码你想干什么就补相应的操作

 return 0;

}
再问: 额。我想你理解有点错了,不只是输入3+8i,3+8i只是一个特例,我是说输入任意一个复数时,将其实部和虚部赋给这个复数类里的两个参数,比如:输入5,将5赋给实部,虚部为0,输入i,将0赋给实部,虚部为1,输入0时直接实部为0虚部为0,这样。。
再答: 要实现你说得这么智能有点小麻烦 说思路吧! 定义char str[50];//用来存储输入的字符 gets(str);//函数读取一行字符存储到str中(以回车结尾) 现在解析str字符串的内容: while(*str !='\0') { char c = *str; if(c>'0' && c < ‘9’ || c=='i')//证明第一个字符时有效数字 //为数字时是个情况,为i也是一种情况 //接下来一个个字符读,记得将字符串转换成数字:字符串300转换成数字300等,就需要你耐心了 str++; } 还有问题再说,希望你能自己独立做下去
 
 
展开全文阅读
剩余:2000
上一页:周五
下一页:责任的事实论据