[問題]矩陣的次方問題

看板C_and_CPP作者 (小劉)時間11年前 (2014/10/26 20:40), 11年前編輯推噓1(2118)
留言21則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev-C++ 問題(Question): 目前的程式是執行矩陣平方的結果 我希望算出這個矩陣的n次方(假設n是1000) 請問我該怎麼設定呢? 另外目前矩陣只能輸入整數 有辦法改成輸入小數嗎? 程式碼(Code):(請善用置底文網頁, 記得排版) #include<stdio.h> #include<conio.h> int main() { int a[10][10],mult[10][10],r1,c1,i,j,k; printf("請輸入矩陣的rows跟columns:"); scanf("%d%d",&r1,&c1); //儲存矩陣的元素 printf("\n輸入第一個矩陣的elements:\n"); for(i=0;i<r1;++i) for(j=0;j<c1;++j) { printf("Enter elements a%d%d:",i+1,j+1); scanf("%d",&a[i][j]); } //初始化最終的matrix for(i=0;i<r1;++i) for(j=0;j<c1;++j) { mult[i][j]=0; } //矩陣相乘 for(i=0;i<r1;++i) for(j=0;j<c1;++j) for(k=0;k<c1;++k) { mult[i][j]+=(a[i][k]*a[k][j]); } //OUTPUT矩陣 printf("\n矩陣輸出:\n"); for(i=0;i<r1;++i) for(j=0;j<c1;++j) { printf("%d",mult[i][j]); if(j==c1-1) printf("\n\n"); } getch(); } 以上 謝謝各位好心的大大 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.54.99 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1414327204.A.BE1.html

10/26 20:51, , 1F
我只知道沒排版的程式沒有看的必要
10/26 20:51, 1F

10/26 21:05, , 2F
sorry 不懂版規
10/26 21:05, 2F
※ 編輯: ljuyentintho (114.35.172.129), 10/26/2014 21:20:53

10/26 22:03, , 3F
這不只是板規,給任何人看程式碼排版是基本要求
10/26 22:03, 3F

10/26 22:03, , 4F
所以快改吧!!
10/26 22:03, 4F
※ 編輯: ljuyentintho (220.132.55.51), 10/26/2014 23:00:03

10/26 23:06, , 5F
有一種type叫做float
10/26 23:06, 5F

10/26 23:08, , 6F
要N次方就 mult[i][j]+=(mult[i][k]*a[k][j]) ;
10/26 23:08, 6F

10/26 23:09, , 7F
在自己加一個跑n次的迴圈就行了
10/26 23:09, 7F

10/27 00:50, , 8F
你是說程式裡的int改成float然後main前面改成void嗎
10/27 00:50, 8F

10/27 01:02, , 9F
宣告陣列改成float a[][] main前面那個叫做回傳值型態
10/27 01:02, 9F

10/27 01:03, , 10F
跟你要的無關
10/27 01:03, 10F

10/27 01:05, , 11F
還有輸出的地方要改成%f或%.2f代表輸出到小數點後兩位
10/27 01:05, 11F

10/27 05:06, , 12F
用scanf輸入矩陣 不小心輸入錯不就重新執行
10/27 05:06, 12F

10/27 05:10, , 13F
1000次100000次都一樣 自己查eigenvector及eigenvalue
10/27 05:10, 13F

10/27 05:12, , 14F
另外,不知維度矩陣宣告要用動態
10/27 05:12, 14F

10/27 05:16, , 15F
小數點就用double 或float 宣告你的變數a
10/27 05:16, 15F

10/27 05:20, , 16F
如果速度不夠快 後面矩陣要轉置
10/27 05:20, 16F

10/27 05:21, , 17F
這樣走下來一個月就不見了
10/27 05:21, 17F

10/28 19:36, , 18F
建議原po改用matlab
10/28 19:36, 18F

10/29 12:14, , 19F
scanf是stdin,用導向可以把輸入放在檔案裡;另外是否用heap
10/29 12:14, 19F

10/29 12:15, , 20F
好像也沒有定論,通常是看需求囉
10/29 12:15, 20F

10/29 12:17, , 21F
我只知道有個版規是語氣請和緩 :)
10/29 12:17, 21F
文章代碼(AID): #1KJEkalX (C_and_CPP)