C語言,我想定義函式實現矩陣相加功能,可是矩陣最少也要輸入列數,我想讓行列數都是變數,這個

2022-03-12 21:13:18 字數 4272 閱讀 9522

1樓:匿名使用者

#include

#include

#include

typedef struct matrix

matrix, *pmatrix;

void addmatrix( pmatrix a, pmatrix b, pmatrix c )

c->row = a->row;

c->column = a->column;

c->array = (int**)malloc(c->row*sizeof(int*));

if ( c->array == null )

for( i=0; irow; i++ )

memset( *(c->array+i), 0, c->column*sizeof(int) );

for( j=0; jcolumn; j++ )

*(*(c->array+i)+j) = *(*(a->array+i)+j) + *(*(b->array+i)+j);}}

2樓:匿名使用者

看這個函式傳進來的引數m應該代表行數,n代表列數,a[3]的意思是二維陣列的引數第一個下標是可以省略的,你可以看下二維陣列的定義

!!!跪求c語言實現矩陣運算(加,減,乘、求逆、轉置)

3樓:顛倒的世界

1、首先開啟vs2015(其他版本也可以),新建一個windows form窗體程式

或者控制檯都可以。

回2、 定義一個名為答array1的陣列並賦值:double[,] array1 = new double[3, 3] , , };下面求該矩陣轉置矩陣。

3、接下來實現矩陣的轉置運算,可以寫函式也可以寫類,右鍵解決方案下的專案名,新增-類。

4、建立一個名為「turnzhi」的類(名字隨便取,最好用英文,有時候中文名程式會報錯),然後點選「新增」。

5、轉置類的**如下圖所示。

6、在主程式呼叫轉置類,用兩個for循壞將轉置後的陣列(array)輸出來;並將結果顯示在textbox中。

7、最後執行程式檢視編寫的結果:147、258、369。轉置後的結果正確,這樣就實現了c#矩陣的轉置運算。

4樓:匿名使用者

#include

#include

void jiafa()

printf("第一步變換後得到的增廣矩陣為:\n");

for(i=0;i0)

printf("最後得到的增廣矩陣為:\n");

for(i=0;i

for(i=0;i

for(j=0;j

c[i][j]=b[i][n+j];

printf("故逆矩陣為:\n");

for(i=0;i

} main()

return 0;}

5樓:

我寫了一個baic++類庫, 不但有這些du功能, 連求線性方程zhiqr分解之類的都dao有.

可惜是c++啊, 還是專個類庫, 當然沒有介面屬啊.

主函式你可以自己實現.

其實最難的是求逆.

我使用的方法是類似於gauss-jordan消元法的演算法大致是(a, i)經過消元變成(i, b), b恰好是a的逆.

如果你要那個庫的話我可以發給你, 總共7個檔案之多.

6樓:adaa君

別用c來做和矩陣運算copy有關的程式了,麻煩死了bai牆裂建議學一下dumathmatica

比如在mma中矩陣乘法就是a.b,三zhi個字搞定daoc中的兩輪for迴圈

而且在mma中矩陣賦值簡直簡單得不要不要,不需要每個分量賦值,直接一個a=b就完事了

求逆inverse[a]

轉置transpose[a]

各種簡單到極點了

用c++編寫一個矩陣轉置的函式,矩陣的行數列數由使用者輸入

7樓:zoe_歸天

#include

using namespace std;

void zhuanzhi(int *,int r,int c);

int main()

}zhuanzhi(mat ,row,col);

system("pause");

delete mat;

}else

}void zhuanzhi(int *m, int r,int c)

cout<

c語言,輸入一個矩陣,找出所在行上最大,列上最小的數。(可能沒有) 可能定義出錯,求大蝦指教!!!!

8樓:聽不清啊

以下是求每一行上最大、每一列上最小的程式:

#include

main()

printf("第%d行的最大值 %d\n",k+1,max);

}for(l=0;l

main()

}t=1;

for(l=0;l

9樓:我是

定義不對。

必須靜態指定陣列的大小,而不能使用下標。也就是說你應該先指定一個最大的可能的陣列大小。

10樓:郭東濤

這又不是c++,不是你想在哪定義就可以在哪定義的int a[i][j]; 把這個中的i j 換為巨集定義的m和n,可以定義m=100,n=100;

然後將整體移到開始的位置,可以放在int i,j,k,l,min,max;這個的後面

然後你後面貌似也有錯誤,你自己改改看吧,我沒法複製下來去該,你自己改吧

11樓:曠野遊雲

錯誤還不少,第一c中定義語句前不能有任何非定義性語句,因此int a[i][j]位置錯了;第二陣列大小必須是常量而不能是變數,即使是已經初始化了的變數也不行,因此a[i][j]中i,j必須換成常數;第三使用scanf函式時格式控制部分最好不要新增逗號,空格什麼的,否則在輸入時必須輸入相應的字元,因此建議山區scanf("%d,%d",&i,&j);這條語句中第一個逗號

12樓:匿名使用者

int a[i][j];

搞在main下面定義 這樣定義是錯的

c++:定義一個matrix類,實現:任意行數、列數矩陣的構建;轉置;加法、減法和乘法;逆矩陣;輸入與輸出

13樓:匿名使用者

這個應該很好寫吧,資料結構就用array或者vector吧,剩下的就是根據運算規則操縱元素的問題。

14樓:匿名使用者

可以程式定製**哦。 有意向的話**頭像中的號。

求c語言程式設計:輸入一個5行5列的矩陣,計算該矩陣最外圈元素之和。

15樓:匿名使用者

完整**,有問題再問#include

void main()

}printf("您輸入的陣列為\n");

for(i=0;i<5;i++)

printf("\n");

}for(i=0;i<5;i++)}}

printf("該矩陣最外圈元素之和為:%d\n",sum);}

16樓:匿名使用者

#include

#include

void main()

}sum=0;

for (i=0; i<5; i++)

for (i=1; i<4; i++)

printf("%d\n", sum);}

c語言定義一個4×4整型矩陣,並完成資料的初始化,輸入一個數輸出行列,如果沒有,則提示錯誤 5

如何用c語言編一個程式,輸入一個二維陣列,然後以一個矩陣的方式輸出。

17樓:匿名使用者

#include

#include

int main()

for(i = 0;i < n;i++)

printf("%d\n",a[n*i+j]);

}return 0;}

18樓:yn天會

#include

void main()

p=a;

for(i=0;i<2;i++)}}

c語言函式的定義問題,C語言函式的定義問題

void就是沒有返回值,不需要return 是否需要返回值是由你的需求決定的。陳恩點在此為你解答如有錯誤請見諒 不是沒有返回值 是void 不能有返回值 include int f int i int main 第一個void表示沒有該函式沒有需要帶回的資料 當你的函式當中需要呼叫了某個函式,但是你...

c語言怎麼定義max函式,C語言怎麼定義max函式?

max函式 用於求最大值,可以定義如下函式 int max int a,int b 不過該函式只能用於整型而不能用於其內它型別。如容果有其它型別,比如浮點型,則需要再重新修改。float max float a float b 其實這樣 量比較少的操作,可以定義為巨集函式,即帶參巨集定義的形式。de...

c語言中什麼是原型定義,C語言中函式的定義格式是什麼,函式原型宣告的語法格式?

我還直是不知道呢,我說說自己的理解吧,一個函式,可能在別外被引用或是在本檔案中但是要先引用了而後面才有函式定義,此時編譯器需要先行知道這個函式返回型別和引數類形,才可以正確的幫著做嚴格的資料型別和引數個數的檢查 如不提前申明就會當做是返回int 型,引數都當int型且不能檢查引數個數 這個函式在定義...