本文目錄一覽:
用C語言編寫程序(兩個矩陣相加)
用C語言編寫程序(兩個矩陣相加)代碼如下:
/**
MatrixAddition.c
實現兩個矩陣相加
*/
#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;
//矩陣相加:兩個矩陣必須行數和列數一樣才能相加,
//和矩陣的每個元素分別是兩個矩陣對應的元素的和
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]);//輸出結果
}
// printf(“\n”);
}
int (*p)[COLS]=C;
printMatirx2(p,3);
/*結果應為:
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]);//輸出結果
}
printf(“\n”);
}
/*結果應為:
4 3 5 2
0 9 6 1
5 7 2 6
*/
//矩陣數乘:
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]);//輸出結果
}
printf(“\n”);
}
int mul;
printf(“矩陣D數乘以:”);
scanf(“%d”,mul);
printf(“矩陣D數乘以%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]);//輸出結果
}
printf(“\n”);
}
return 0;
}
擴展資料:
C語言矩陣加減法函數:
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 :行數
// kline :列數
// 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語言
c語言程序設計 矩陣加法
#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(“請選擇要進行的運算:1 相加 2 相乘\n”);
scanf(“%d”,b);
//———-樓主此處以下的四個for一一嵌套算出來的結果沒什麼意義。
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”);
}
}
}
複製後可直接編譯運行,結果如下:格式可自行修改。
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) { // 數基在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 { // 數基為 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語言實現矩陣運算(加,減,乘、求逆、轉置)
1、首先打開vs2015(其他版本也可以),新建一個Windows Form窗體程序或者控制台都可以。
2、 定義一個名為array1的數組並賦值:double[,] array1 = new double[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };下面求該矩陣轉置矩陣。
3、接下來實現矩陣的轉置運算,可以寫函數也可以寫類,右鍵解決方案下的項目名,添加-類。
4、創建一個名為“turnzhi”的類(名字隨便取,最好用英文,有時候中文名程序會報錯),然後點擊“添加”。
5、轉置類的代碼如下圖所示。
6、在主程序調用轉置類,用兩個for循壞將轉置後的數組(array)輸出來;並將結果顯示在textbox中。
7、最後運行程序查看編寫的結果:147、258、369。轉置後的結果正確,這樣就實現了c#矩陣的轉置運算。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/184561.html