推 tititata:在宣告初始值的時候把 = 去掉就可以了 09/22 10:32
→ tititata:但是在運算時(複數相加、乘)要有等號 09/22 10:32
推 cation234:非常感謝 您幫了在下不少忙 09/22 12:11
> -------------------------------------------------------------------------- <
作者: PiscesGold (黃金雙魚宮) 看板: C_and_CPP
標題: Re: [問題] C++複數的初始值設定
時間: Thu Sep 22 05:08:26 2005
應該是初始化的時候那兩條語句語義不符
我想應該把圓括號「(」、「)」改成花括號「{」、「}」
※ 引述《cation234 (貓離子)》之銘言:
: 以下是小弟的code, 簡單的測試C++ STL的複數資料型態:
: #include <iostream>
: #include <complex>
: using namespace std;
: int main()
: {
: complex <double> x = (0.1, 0.2);
~~~~~~~~~~~這里的結果是0.2
: complex <double> mu = (0.2, 0.6);
~~~~~~~~~~~這個是0.6
: //cout<<"Please input the value of x: ";
: //cin>>x;
: //cout<<"Please input the value of mu: ";
: //cin>>mu;
: cout<<"x = "<<x<<endl;
: cout<<"mu = "<<mu<<endl<<endl;
: system("pause");
: return 0;
(刪除)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.232.94.201
> -------------------------------------------------------------------------- <
作者: cation234 (貓離子) 看板: C_and_CPP
標題: Re: [問題] C++複數的初始值設定
時間: Thu Sep 22 12:13:12 2005
在下找到了這個 說明了為什麼會有這種問題
http://www-h.eng.cam.ac.uk/help/tpl/languages/C++/complex.html
※ 引述《PiscesGold (黃金雙魚宮)》之銘言:
: 應該是初始化的時候那兩條語句語義不符
: 我想應該把圓括號「(」、「)」改成花括號「{」、「}」
: ※ 引述《cation234 (貓離子)》之銘言:
: : 以下是小弟的code, 簡單的測試C++ STL的複數資料型態:
: : #include <iostream>
: : #include <complex>
: : using namespace std;
: : int main()
: : {
: : complex <double> x = (0.1, 0.2);
: ~~~~~~~~~~~這里的結果是0.2
: : complex <double> mu = (0.2, 0.6);
: ~~~~~~~~~~~這個是0.6
: : //cout<<"Please input the value of x: ";
: : //cin>>x;
: : //cout<<"Please input the value of mu: ";
: : //cin>>mu;
: : cout<<"x = "<<x<<endl;
: : cout<<"mu = "<<mu<<endl<<endl;
: : system("pause");
: : return 0;
: (刪除)
--
Welcome, Willkommen, Velkommen:
http://homepage.ntu.edu.tw/~r94543035/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.165.32
推 tititata:讚! 09/22 13:06
> -------------------------------------------------------------------------- <
作者: khoguan (Khoguan Phuann) 看板: C_and_CPP
標題: Re: [問題] C++複數的初始值設定
時間: Fri Sep 23 01:07:30 2005
※ 引述《cation234 (貓離子)》之銘言:
: 在下找到了這個 說明了為什麼會有這種問題
:
: http://www-h.eng.cam.ac.uk/help/tpl/languages/C++/complex.html
那裡面有幾句話不對。
"In fact, c2=(3,7) is equivalent to c2=3,7. C++'s "," operator
suppresses the value of the first operand in favour of the second,
so c2=3,7 is equivalent to c2=7."
當寫成 c2=(3,7); 時, c2 會變成 7, 而 3 是多餘的,沒效果。
但寫成 c2=3,7; 時, c2 會變成 3, 而 7 是多餘的,沒效果。
請自行實驗看看。
至於其道理,則是 comma operator 比 assignment operator 的優先權
還要低。 c2=3,7; 等同於 (c2=3), 7;
: : : 以下是小弟的code, 簡單的測試C++ STL的複數資料型態:
: : : #include <iostream>
: : : #include <complex>
: : : using namespace std;
: : : int main()
: : : {
: : : complex <double> x = (0.1, 0.2);
: : ~~~~~~~~~~~這里的結果是0.2
: : : complex <double> mu = (0.2, 0.6);
: : ~~~~~~~~~~~這個是0.6
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.208.168