真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言矩陣加行函數(shù) c語言求矩陣行列式

C語言矩陣每行元素相加

#include stdio.h

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了碑林免費(fèi)建站歡迎大家使用!

int main()

{

int m, n, a[6][6], sum[6] = {0};

int i, j;

printf("輸入行數(shù)和列數(shù):");

scanf("%d%d", m, n);

printf("輸入%d行%d列矩陣元素:\n", m, n);

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

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

{

scanf("%d", a[i][j]);

sum[i] += a[i][j];

}

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

printf("第%d行元素之和:%d\n", i + 1, sum[i]);

return 0;

}

?。。」蚯驝語言實(shí)現(xiàn)矩陣運(yùn)算(加,減,乘、求逆、轉(zhuǎn)置)

1、首先打開vs2015(其他版本也可以),新建一個Windows Form窗體程序或者控制臺都可以。

2、 定義一個名為array1的數(shù)組并賦值:double[,] array1 = new double[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };下面求該矩陣轉(zhuǎn)置矩陣。

3、接下來實(shí)現(xiàn)矩陣的轉(zhuǎn)置運(yùn)算,可以寫函數(shù)也可以寫類,右鍵解決方案下的項(xiàng)目名,添加-類。

4、創(chuàng)建一個名為“turnzhi”的類(名字隨便取,最好用英文,有時候中文名程序會報(bào)錯),然后點(diǎn)擊“添加”。

5、轉(zhuǎn)置類的代碼如下圖所示。

6、在主程序調(diào)用轉(zhuǎn)置類,用兩個for循壞將轉(zhuǎn)置后的數(shù)組(array)輸出來;并將結(jié)果顯示在textbox中。

7、最后運(yùn)行程序查看編寫的結(jié)果:147、258、369。轉(zhuǎn)置后的結(jié)果正確,這樣就實(shí)現(xiàn)了c#矩陣的轉(zhuǎn)置運(yùn)算。

c語言程序設(shè)計(jì) 矩陣加法

#includestdio.h

void?main()

{

int?a[15][15],i,j,k,t,b;

printf("請輸入一個3行3列的矩陣:\n");

/*for(i=0;i3;i++)

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

scanf("%d",a[i][j]);

printf("請輸入另一個3行3列的矩陣\n");

for(k=0;k3;k++)

for(t=0;t3;t++)

scanf("%d",a[k][t]);*///----此處覆蓋掉了矩陣1;

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

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

scanf("%d",a[i][j]);

printf("請輸入另一個3行3列的矩陣\n");

for(k=0;k3;k++)

for(t=0;t3;t++)

scanf("%d",a[k+3][t+3]);

printf("矩陣【1】\n");

for(i=0;i3;i++){

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

printf("%d?",a[i][j]);

printf("\n");

}

printf("矩陣【2】\n");

for(i=0;i3;i++){

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

printf("%d?",a[i+3][j+3]);

printf("\n");

}

printf("請選擇要進(jìn)行的運(yùn)算:1?相加?2?相乘\n");

scanf("%d",b);

//----------樓主此處以下的四個for一一嵌套算出來的結(jié)果沒什么意義。

if(b==1)

{

printf("相加:\n");

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

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

a[i][j]=a[i][j]+a[i+3][j+3];

for(i=0;i3;i++){

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

printf("%d\t",a[i][j]);

printf("\n");}

}

if(b==2)

{

printf("相乘:\n");

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

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

a[i+6][j+6]?=?a[i][0]*a[3][j+3]?+?a[i][1]*a[4][j+3]?+?a[i][2]*a[5][j+3];

for(i=0;i3;i++){

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

printf("%d\t",a[i+6][j+6]);

printf("\n");

}

}

}

復(fù)制后可直接編譯運(yùn)行,結(jié)果如下:格式可自行修改。

c語言矩陣的加法

#include?stdio.h

#include?ctype.h

#define?MAX_STR_LEN?100

int?strToInt(char?s[],int?base)?{

int?i?=?0,result?=?0,sign?=?1;

if(s[i]?==?'+')?{?sign?=?1;?++i;?}

else?if(s[i]?==?'-')?{?sign?=?-1;?++i;?}

if(base??10)?{?//?數(shù)基在10以上時

while(s[i])?{

if(islower(s[i]))?result?=?base?*?result?+?s[i]?-?'a'?+?10;

else?if(isupper(s[i]))?result?=?base?*?result?+?s[i]?-?'A'?+?10;

else?if(isdigit(s[i]))?result?=?base?*?result?+?s[i]?-?'0';

++i;

}

}

else?{?//?數(shù)基為?0?--?10?時

while(s[i])?{

if(isdigit(s[i])??(s[i]?-?'0'??base))

result?=?base?*?result?+?s[i]?-?'0';

++i;

}

}

return?sign?*?result;

}

int?main()?{

int?base;?

char?s[MAX_STR_LEN];?

while(?(scanf("%d:",?base)?!=?EOF)??(gets(s)?!=?NULL)?)

printf("%d\n",?strToInt(s,?base));?

return?0;?

}

c語言,矩陣

上面那個程序是我寫的,下面寫的是兩個2*2矩陣相加和相乘的程序(行數(shù)和列數(shù)可以在主函數(shù)中更改),不得不說一句,有關(guān)矩陣的東西就是麻煩:

#include stdio.h

#include stdlib.h

int** NewMatrix(int row,int col) //動態(tài)開辟一個數(shù)組

{

int i,j;

int** matrix;

matrix=(int **)malloc(sizeof(int *)*row);

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

{

matrix[i]=(int*)malloc(sizeof(int)*col);

}

//輸入矩陣的元素

printf("please input the array elements:\n") ;

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

{

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

{

scanf("%d",matrix[i][j]);

}

}

return matrix;

}

//兩矩陣相加a[row][col]+b[row][col]

int **addMatrix(int** a,int** b,int row,int col)

{

int i,j;

int** matrix;

//動態(tài)建立一個矩陣空間以存放運(yùn)算結(jié)果

matrix=(int **)malloc(sizeof(int *)*row);

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

{

matrix[i]=(int*)malloc(sizeof(int)*col);

}

//計(jì)算a+b

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

{

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

{

matrix[i][j] = a[i][j] + b[i][j];

}

}

return matrix;

}

//兩矩陣相乘a[row][com]*b[com][col]

int **multiplyMatrix(int **a,int **b,int row,int com,int col)

{

int i,j,k;

int** matrix;

//動態(tài)建立一個矩陣空間以存放運(yùn)算結(jié)果

matrix=(int **)malloc(sizeof(int *)*row);

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

{

matrix[i]=(int*)malloc(sizeof(int)*col);

}

//計(jì)算a+b

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

{

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

{

matrix[i][j] = 0;

for(k=0;kcom;k++)

{

matrix[i][j] += a[i][k] * b[k][j];

}

}

}

return matrix;

}

void main()

{

int i,j;

int row = 2,col = 2; //行數(shù)和列數(shù)在此更改

int **a,**b,**c;

a = NewMatrix(row,col); //動態(tài)建立矩陣a

b = NewMatrix(row,col); //動態(tài)建立矩陣b

//調(diào)用函數(shù),求兩矩陣的和

c = addMatrix(a,b,row,col);

//輸出兩矩陣的和

printf("\na add b is:\n");

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

{

printf("\n");

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

{

printf("%d ",c[i][j]);

}

}

//調(diào)用函數(shù),求兩矩陣的積

c = multiplyMatrix(a,b,row,row,col);

//輸出兩矩陣的積

printf("\na multiply b is:\n");

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

{

printf("\n");

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

{

printf("%d ",c[i][j]);

}

}

}

本來程序還可以寫得簡單一些,由于你要求兩矩陣同時能夠相加和相乘,從而可以判定兩矩陣的行數(shù)和列數(shù)應(yīng)該是相等的,因而在函數(shù)傳遞參數(shù)的時候只要傳一個就行了。但是考慮到程序的可移植性,我在寫相加和相乘的子函數(shù)時,考慮了普遍性,即對于給定的任意的row和col(甚至row != col),加法和乘法都能夠適用。然而這樣一來,形參看起來就比較多了。你自己就情況而定吧,不懂的地方發(fā)我消息。

用C語言編寫程序(兩個矩陣相加)

用C語言編寫程序(兩個矩陣相加)代碼如下:

/**

MatrixAddition.c

實(shí)現(xiàn)兩個矩陣相加

*/

#includestdio.h

const int COLS=3;

void printMatirx(int *pArray,int rows,int cols);

void printMatirx2(int (*pArray)[COLS],int rows);

int main()

{

int A[3][4]={{15,10,9,12},

{18,14,8,7},

{16,13,6,11}};

printf("矩陣A=\n");

printMatirx(A,3,4);

int B[3][4]={{4,3,5,2},

{0,9,6,1},

{5,7,2,6}};

printf("矩陣B=\n");

printMatirx(B,3,4);

int C[3][4];

int i,j;

//矩陣相加:兩個矩陣必須行數(shù)和列數(shù)一樣才能相加,

//和矩陣的每個元素分別是兩個矩陣對應(yīng)的元素的和

printf("矩陣A+矩陣B=\n");

for(i=0;i3;i++)//控制行

{

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

{

C[i][j]=A[i][j]+B[i][j];

//printf("%3d",C[i][j]);//輸出結(jié)果

}

//? ? ? ? printf("\n");

}

int (*p)[COLS]=C;

printMatirx2(p,3);

/*結(jié)果應(yīng)為:

19 13 14 14

18 23 14? 8

21 20? 8 17

*/

printf("矩陣C-矩陣A=\n");

for(i=0;i3;i++)//控制行

{

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

{

printf("%3d",C[i][j]-A[i][j]);//輸出結(jié)果

}

printf("\n");

}

/*結(jié)果應(yīng)為:

4? 3? 5? 2

0? 9? 6? 1

5? 7? 2? 6

*/

//矩陣數(shù)乘:

int D[3][4];

printf("矩陣D:\n");

for(i=0;i3;i++)//控制行

{

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

{

D[i][j]=1;

printf("%d\t", D[i][j]);//輸出結(jié)果

}

printf("\n");

}

int mul;

printf("矩陣D數(shù)乘以:");

scanf("%d",mul);

printf("矩陣D數(shù)乘以%d=\n",mul);

for(i=0;i3;i++)//控制行

{

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

{

D[i][j]=D[i][j]*mul;

printf("%d\t", D[i][j]);//輸出結(jié)果

}

printf("\n");

}

return 0;

}

擴(kuò)展資料:

C語言矩陣加減法函數(shù):

void matrix_a(double **a_matrix, const double **b_matrix, const double **c_matrix,int krow, int kline, int ktrl)

////////////////////////////////////////////////////////////////////////////

// ?a_matrix=b_matrix+c_matrix

// ? krow ? :行數(shù)

// ? kline ?:列數(shù)

// ? ktrl ? :大于0: 加法 ?不大于0:減法

////////////////////////////////////////////////////////////////////////////

{

int k, k2;

for (k = 0; k krow; k++)?

{

for(k2 = 0; k2 kline; k2++)

?

{

a_matrix[k][k2] = b_matrix[k][k2]

? ? ? ? ?

+ ((ktrl 0) ? c_matrix[k][k2] : -c_matrix[k][k2]);

}

}

}

參考資料:

百度百科-C語言


當(dāng)前名稱:c語言矩陣加行函數(shù) c語言求矩陣行列式
網(wǎng)頁地址:http://weahome.cn/article/hidsdh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部