[問題] 複數矩陣初始化方式

看板C_and_CPP作者 (願主陪著你)時間15年前 (2010/06/02 20:57), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
我想請問一下 我現在想要造一個複數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

06/02 21:04, , 1F
struct c_comp a,b,c,d[2][2] = {0};
06/02 21:04, 1F

06/02 21:05, , 2F
現在這樣會變成 d[2][2]那一格的rmz去賦值,那不是你要的
06/02 21:05, 2F

06/02 21:47, , 3F
要處理複數建議你加上#include <complex.h>
06/02 21:47, 3F

06/02 21:47, , 4F
使用內建的complex處理比較方便
06/02 21:47, 4F
文章代碼(AID): #1C1bKWvt (C_and_CPP)