Re: [問題] C++複數的初始值設定
//爬文后還是沒有說明如何在C++中
//給定2個實數值在1個複數變數中 初值的設定
//以下是測試過的程式
#include <complex>
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int main(int argc, char* argv[])
{
complex <double> x = (0.1, 0.2);
complex <double> mu = (0.2, 0.6);
cout<<"x = "<<x<<endl;
cout<<"mu = "<<mu<<endl<<endl;
//以上是原文初始值設定的問題
//以下是修正原文初始值設定的問題
complex <double> y = std::complex <double> (0.1, 0.2);
complex <double> nu = std::complex <double> (0.2, 0.6);
cout<<"y = "<<y<<endl;
cout<<"nu = "<<nu<<endl<<endl;
cout<<"y.real = "<<y.real()<<endl;
cout<<"nu.real = "<<nu.real()<<endl<<endl;
cout<<"y.imag"<<y.imag()<<endl;
cout<<"nu.imag = "<<nu.imag()<<endl<<endl;
system("pause");
return 0;
}
※ 引述《khoguan (Khoguan Phuann)》之銘言:
: ※ 引述《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;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.20.143
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章