1.矩陣的倒置
#include<stdio.h> #define N 2 #define M 3 int main(){ int i,j,a[N][M],b[M][N]; //從鍵盤輸入矩陣a for(i=0;i<N;i++){ for(j=0;j<M;j++){ printf("a[%d][%d]= ",i,j); scanf("%d",&a[i][j]); } } //輸出矩陣a printf("Array a:\n"); for(i=0;i<N;i++){ for(j=0;j<M;j++){ printf("%5d",a[i][j]); b[j][i]=a[i][j]; } printf("\n"); } //輸出矩陣b printf("Array b:\n"); for(i=0;i<M;i++){ for(j=0;j<N;j++){ printf("%5d",b[i][j]); } printf("\n"); } }
2.矩陣的乘法
#include<stdio.h>
#define M 10
int main(){
long int a[M][M], b[M][M], c[M][M]={0};
int m, n, p, i, j, k;
printf("請輸入數組A的行\n");
scanf("%d",&m);
printf("請輸入數組A的列\n");
scanf("%d",&n);
printf("請輸入數組B的行\n");
scanf("%d",&p);
printf("Please input array A (%d * %d)\n", m, n);
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%ld", &a[i][j]);
}
}
printf("Plaese input array B (%d * %d)\n", n, p);
for(i=0;i<n;i++){
for(j=0;j<p;j++){
scanf("%ld", &b[i][j]);
}
}
//A*B=C
for(i=0;i<m;i++){
for(j=0;j<p;j++){
for(k=0;k<n;k++){
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
printf("A*B= \n");
for(i=0;i<m;i++){
for(j=0;j<p;j++){
printf("%3ld",c[i][j]);
}
printf("\n");
}
return 0;
}
3.矩陣的加法和乘法數組
1 #include<stdio.h> 2 int main() 3 { 4 int a[15][15],i,j,k,t,b; 5 printf("請輸入一個3行3列的矩陣:\n"); 6 for(i=0;i<3;i++) 7 for(j=0;j<3;j++) 8 scanf("%d",&a[i][j]); 9 printf("請輸入另外一個3行3列的矩陣\n"); 10 for(k=0;k<3;k++) 11 for(t=0;t<3;t++) 12 scanf("%d",&a[k+3][t+3]); 13 printf("矩陣【1】\n"); 14 for(i=0;i<3;i++){ 15 for(j=0;j<3;j++) 16 printf("%d ",a[i][j]); 17 printf("\n"); 18 } 19 printf("矩陣【2】\n"); 20 for(i=0;i<3;i++){ 21 for(j=0;j<3;j++) 22 printf("%d ",a[i+3][j+3]); 23 printf("\n"); 24 } 25 26 printf("請選擇要進行的運算:1 相加 2 相乘\n"); 27 scanf("%d",&b); 28 if(b==1) 29 { 30 printf("相加:\n"); 31 for(i=0;i<3;i++) 32 for(j=0;j<3;j++) 33 a[i][j]=a[i][j]+a[i+3][j+3]; 34 for(i=0;i<3;i++){ 35 for(j=0;j<3;j++) 36 printf("%d\t",a[i][j]); 37 printf("\n");} 38 } 39 if(b==2) 40 { 41 printf("相乘:\n"); 42 for(i=0;i<3;i++) 43 for(j=0;j<3;j++) 44 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]; 45 for(i=0;i<3;i++){ 46 for(j=0;j<3;j++) 47 printf("%d\t",a[i+6][j+6]); 48 printf("\n"); 49 } 50 } 51 }