数据结构-数组
#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; }优质内容筛选与推荐>>