当前位置:网站首页>用C的数组实现矩阵的加减乘与求转置
用C的数组实现矩阵的加减乘与求转置
2022-07-15 16:56:00 【Smile Hun】
#include<stdio.h>
#include<time.h>
#include <stdlib.h>
#define N 20
void MatrixSum(int matrix1[N][N], int matrix2[N][N]); //矩阵加法
void MatrixSubstract(int matrix1[N][N], int matrix2[N][N]); //矩阵减法
void MatrixMultiple(int matrix1[N][N], int matrix2[N][N]); //矩阵乘法
void MatrixTransposematrix(int matrix1[N][N]); //矩阵转置
int main(){
// 生成俩个随机数组 matrix1,matrix2
int matrix1[N][N], matrix2[N][N];
srand((unsigned)time(NULL));
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
matrix1[i][j] = rand()%11;
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
matrix2[i][j] = rand() % 11;
}
}
// 检查随机数组的生成
for (int i = 0; i <N; i++) {
for (int j = 0; j <N; j++) {
printf("%d ", matrix1[i][j]);
}
printf("\n");
}
printf("\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", matrix2[i][j]);
}
printf("\n");
}
printf("\n");
//调用矩阵加法
//MatrixSum( matrix1, matrix2);
//调用矩阵减法
//MatrixSubstract(matrix1, matrix2);
//调用矩阵乘法
//MatrixMultiple(matrix1, matrix2);
//调用矩阵转置求法
MatrixTransposematrix(matrix1);
}
//矩阵加法的实现
void MatrixSum(int matrix1[N][N], int matrix2[N][N]) {
int result[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
result[i][j] = matrix1[i][j]+ matrix2[i][j]; //从 matrix1[0][0] 开始与 matrix2[0][0] 相加 并 循环赋值 给result
}
}
printf("矩阵加法的结果为:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++){
printf("%d ", result[i][j]);
}
printf("\n");
}
}
//矩阵减法的实现
void MatrixSubstract(int matrix1[N][N], int matrix2[N][N]) {
int result[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
result[i][j] = matrix1[i][j] - matrix2[i][j]; //从 matrix1[0][0] 开始与 matrix2[0][0] 相减 并 循环赋值 给result
}
}
printf("矩阵减法的结果为:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
}
//矩阵乘法的实现
void MatrixMultiple(int matrix1[N][N], int matrix2[N][N]) {
int result[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++)
{
float ret = 0;
for (int k = 0; k < N; k++)
{
ret += matrix1[i][k] * matrix2[k][j]; //按照矩阵的乘法规则进行运算
}
result[i][j] = ret;
}
}
printf("矩阵的相乘结果为:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
}
//求矩阵的转置的实现
void MatrixTransposematrix(int matrix1[N][N]) {
int result[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
result[j][i] = matrix1[i][j]; //实现转置
}
}
printf("矩阵的转置为:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
}
边栏推荐
- MySQL-pymysql模块
- Private cloud ranking of Tangmen concealed weapons
- 机器学习最重要的一张图,如何选择模型 sklearn结构图
- PD QC decoy power application IC "liderui ldr6328s" is widely used in all sizes of household appliances
- flowable 自定义属性实现和属性获取小记
- Implementation of sequence table in C language stack
- Mysql高版本报sql_mode=only_full_group_by异常
- 数组中的重复数字
- 抖音带火的这种无线领夹麦克风,央视主持人都在用
- PHP 如何把二维数组变为 一维数组
猜你喜欢

8. MySQL -- 触发器

Serialization and deserialization of flip word /maxqueue/ quadratic tree

(一)MATLAB基础知识

typec显示器解决方案大全LDR6290单C口桌面式显示器解决方案

C language Chapter 9 string
![[cloud native] 3.4 ruoyi cloud deployment practice (Part 1)](/img/42/bd8ab0b5e51e181b71b9028bd363ad.png)
[cloud native] 3.4 ruoyi cloud deployment practice (Part 1)

【面试必刷101】双指针

Excel导入导出注解通用版

PD QC decoy power application IC "liderui ldr6328s" is widely used in all sizes of household appliances

String 长度有限制吗?是多少?
随机推荐
通达信开户选哪个证券公司 开户安全吗?
Timesformer: can you understand video by transformer alone? Another attack of attention mechanism
How Oracle escapes single quotation marks
枚举,你了解它吗?
TP5重写分页
数组和字符串赋值的问题(定义时不初始化)
Latest idea reset method
数据库存IP地址,用什么数据类型
直播神器领夹式无线麦克风-LDR6028助力充电OTG方案
基于TaskScheduler和CronTask实现动态增删启停定时任务功能
【面试必刷101】双指针
Wm8960 sound card related problems
String 长度有限制吗?是多少?
最新Idea重置办法
Lifecycle: the foundation of lifecycle aware components - jetpack series (1)
Exploration of yolact model structure
Design and implementation of fingertip Roulette Games (uniapp implements wechat applet)
Mysql高版本报sql_mode=only_full_group_by异常
[300 + selected interview questions from big companies continued to share] big data operation and maintenance sharp knife interview question column (4)
WM8960声卡相关问题