新聞中心
c語言怎么輸入矩陣
c語言矩陣分為兩種:
慶陽網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
第一種方法是動態(tài)的申請矩陣存儲空間,該方法的好處有以下兩點(diǎn):
1.能夠動態(tài)的申請和釋放存儲空間;
2.對于將矩陣作為函數(shù)返回值的情況,該方法具有獨(dú)特的優(yōu)勢。
第二種方法是靜態(tài)存儲實(shí)現(xiàn),該方法的好處是簡單、易實(shí)現(xiàn),相對第一種方法缺點(diǎn):
1.靜態(tài)實(shí)現(xiàn),不能動態(tài)的申請和釋放空間,對電腦的內(nèi)容要求高;
2.對于將矩陣作為函數(shù)返回值的情況,不能使用該方法。
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);
}
//計算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);
}
//計算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語言輸入矩陣
scanf("%d,%d",i,j); //你輸入時要帶","比如 5,6 ,是"%d,%d"要求的,你可以去掉這個逗號然后輸入 5 6 也行
請問一下c語言如何輸入矩陣
c語言輸入矩陣方法:先自己輸入階數(shù),再輸入各個元素。C語言是一門面向過程、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機(jī)器語言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以一個標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機(jī)等作業(yè)平臺的許多計算機(jī)平臺上進(jìn)行編譯。
更多關(guān)于c語言如何輸入矩陣,進(jìn)入:查看更多內(nèi)容
新聞標(biāo)題:c語言中輸入矩陣函數(shù) c語言中輸入矩陣函數(shù)怎么輸入
新聞來源:http://ef60e0e.cn/article/hehpgh.html