数据结构-数组

#include<stdio.h>
#define MaxSize 50

//矩阵转置
void transfrom(int a[][MaxSize],int b[][MaxSize],int m,int n){
for(int i = 0;i < m;i++){
for(int j = 0;j < n;j++){
b[j][i] = a[i][j]; 
}
}
for(int i = 0;i < n;i++){
for(int j = 0;j < m;j++){
printf("%d ",b[i][j]); 
}
printf("\n");
}
}

//矩阵相加
void add(int a[][MaxSize],int b[][MaxSize],int c[][MaxSize],int m,int n){
for(int i = 0;i < m;i++){
for(int j = 0;j < n;j++){
c[i][j] = a[i][j] + b[i][j];
}
}
for(int i = 0;i < m;i++){
for(int j = 0;j < n;j++){
printf("%5d",c[i][j]); 
}
printf("\n");
}
}


//矩阵相乘
void multi(int a[][MaxSize],int b[][MaxSize],int c[][MaxSize],int m,int n){
for(int i = 0;i < m;i++){

for(int j = 0;j < n;j++){
int temp;int sum = 0;
for(int k = 0;k < n;k++){
temp = a[i][j] * b[j][k];
sum = sum + temp; 
}    
c[i][j] = sum;
}
}

//输出展示 
for(int i = 0;i < m;i++){
for(int j = 0;j < n;j++){
printf("%5d",c[i][j]); 
}
printf("\n");
}

}

int main(){
//    int a[][MaxSize] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
//    int b[][MaxSize] = {{42,34,16},{10,1,2},{7,8,9},{1,2,3}};
int a[][MaxSize] = {{1,1,1},{1,1,1},{1,1,1},{1,1,1}};
int b[][MaxSize] = {{1,1,1},{1,1,1},{1,1,1},{1,1,1}};
int c[MaxSize][MaxSize];
//测试矩阵转置 
//    transfrom(a,b,4,3);
//    int col = sizeof(b)/sizeof(b[0]); //行数 
//    int row = sizeof(b[0])/sizeof(b[0][0]); //列数 
//    矩阵加法 
//    add(a,b,c,4,3); 
multi(a,b,c,4,3);
return 0;
}

 

posted on 2019-07-01 18:02  楠楠要上天  阅读(160)  评论(0编辑  收藏  举报