数据结构-矩阵的倒置,加法,乘法

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 }

posted @ 2019-05-08 21:53  李振业  阅读(926)  评论(0编辑  收藏  举报