C_and_CPP 板


LINE

#include <iostream> #include <iomanip> using namespace std; class Complex { private: double RealPart; double ImaginPart; public: Complex operator +(const Complex & ); Complex operator *(const Complex &); Complex operator /(const Complex &); friend Complex operator *( double , const Complex &a); Complex operator -(); Complex(const double a = 0.0, const double b = 0.0):RealPart(a),ImaginPart(b) {} ~Complex() {} friend Complex operator -(const Complex &, const Complex &); friend std::ostream & operator << (std::ostream & os ,const Complex &); friend std::istream & operator >> (std::istream & is,Complex &); }; Complex Complex::operator +(const Complex &t) { return Complex(RealPart+t.RealPart , ImaginPart+t.ImaginPart ); } Complex operator -(const Complex &a, const Complex &b) { return Complex(a.RealPart -b.RealPart , a.ImaginPart -b.ImaginPart ); } Complex Complex::operator *(const Complex &t) { return Complex(RealPart*t.RealPart -ImaginPart*t.ImaginPart , RealPart*t.ImaginPart +ImaginPart*t.RealPart ); } Complex Complex::operator /(const Complex &t) { double x = t.RealPart*t.RealPart + t.ImaginPart*t.ImaginPart; if( x!=0 ) { //cout<<Complex( (RealPart*t.RealPart +ImaginPart*t.ImaginPart)/x , (ImaginPart*t.RealPart-RealPart*t.ImaginPart)/x ); return Complex( (RealPart*t.RealPart +ImaginPart*t.ImaginPart)/x , (ImaginPart*t.RealPart-RealPart*t.ImaginPart)/x ); } //cout<<"divided by 0!\n"; return Complex(-0.001,0.001); } Complex operator *( double n, const Complex &t) { return Complex(n*t.RealPart ,n*t.ImaginPart ); } Complex Complex::operator -() { return Complex(-RealPart, -ImaginPart); } std:: ostream & operator << (std:: ostream & os, const Complex & t) { if( t.RealPart==-0.001&&t.ImaginPart==0.001 ) cout<<"divided by 0!\n"; else if( t.RealPart==0.001&&t.ImaginPart==-0.001 ) cout<<"undefined operation!\n"; else os <<"("<< fixed << setprecision(2)<< t.RealPart << ","<<t.ImaginPart <<")\n"; return os; } std:: istream & operator >> (std:: istream & is, Complex &t ) { char a; cin>>a; is >> t.RealPart ; cin>>a; is >> t.ImaginPart ; cin>>a; return is; } int main() { char oper; Complex* answer[1000]; Complex num1,num2; int i=0; while( cin>>num1 ){ answer[i] = new Complex; cin>>oper; cin>>num2; switch( oper ){ case '+': //cout<<num1+num2; //cin>>num2; *answer[i]=num1+num2; break; case '-': //cout<<num1-num2; //cin>>num2; *answer[i]=num1-num2; break; case '*': //cout<<num1*num2; //cin>>num2; *answer[i]=num1*num2; break; case '/': //num1/num2; //cin>>num2; *answer[i]=num1/num2; break; default: *answer[i]=Complex(0.001,-0.001); //cout<<"undefined operation!\n"; break; } /*if( i==10 ) break;*/ i++; } for( int j=0;j<i;j++ ) cout<<*answer[j]; system("pause"); return 0; } --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.140.12
1F:推 ledia:如果算出來的答案剛好是 0.001 - 0.001i 怎麼辦? XD 05/04 16:31
2F:→ TheJim:唉唷 那個我試過了 不是那原因 05/04 17:24
3F:推 ledia:那... 如果亂搞的 operator 長度超過 1 byte 會發生什麼事? 05/04 19:17
4F:推 yoco315:setpre 2 ? 有規定說最多兩位嗎? 05/04 20:48
5F:推 yoco315:有規定耶.. 那我也不知道了 05/04 20:56
6F:→ yoco315:哈,第四項你有顧到嗎?undefined 的那個 05/04 20:57
7F:→ yoco315:嗯,有顧到.. -_-" 那真的不知道了 05/04 20:59
8F:→ TheJim:樓上你在搞笑嗎= = 05/04 21:07
9F:推 AppleFox:超強大的自言自語... 05/04 22:55
10F:推 yoco315:大大的程度超過我太多了 qq 05/05 02:16







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP