作者jack58 (願主陪著你)
看板C_and_CPP
標題[問題] 複數矩陣初始化方式
時間Wed Jun 2 20:56:58 2010
我想請問一下 我現在想要造一個複數2*2矩陣
所以我先用一個結構宣告 可是我後來初始化怎麼寫都不對
以下是我的程式碼
#include<stdio.h>
#include<math.h>
struct c_comp
{
double rmz;
double imz;
};
void comp_product(struct c_comp *a1,struct c_comp *a2,struct c_comp *c);
main()
{
struct c_comp a,b,c,d[2][2];
d[2][2].rmz={{0},{0}};
^^^^^^^^^^^^^^^^^^^^^^^^^^^ <---這邊顯示有錯,可是不清楚怎麼改?
a.rmz=2.0;
a.imz=1.0;
b.rmz=3.0;
b.imz=2.0;
comp_product(&a,&b,&c);
printf("result:\n");
printf("%.2lf+j%.2lf\n",c.rmz,c.imz);
}
void comp_product(struct c_comp *a1,struct c_comp *a2,struct c_comp *c)
{
double p,q,r;
p=a1->rmz*a2->rmz;
q=a1->imz*a2->imz;
r=(a1->rmz+a1->imz)*(a2->rmz+a2->imz);
c->rmz=p-q;
c->imz=r-p-q;
}
請問複數矩陣要怎麼初始化? ~"~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.116.121
→ james732:struct c_comp a,b,c,d[2][2] = {0}; 06/02 21:04
推 nowar100:現在這樣會變成 d[2][2]那一格的rmz去賦值,那不是你要的 06/02 21:05
→ diabloevagto:要處理複數建議你加上#include <complex.h> 06/02 21:47
→ diabloevagto:使用內建的complex處理比較方便 06/02 21:47