看板 C_and_CPP 關於我們 聯絡資訊
我想請問一下 我現在想要造一個複數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