news 2026/5/19 22:20:53

5.18二维数组与矩阵乘法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5.18二维数组与矩阵乘法
#include <stdio.h> #include <malloc.h> #include <stdlib.h> #define ROWS 4 #define COLS 5 /** *动态分配 */ typedef struct TwoDArray{ int rows; int cols; int** data; } TwoDArray, *TwoDArrayPtr; /** *静态分配 */ typedef struct TwoDStaticArray{ int rows; int cols; int data[ROWS][COLS]; } TwoDStaticArray, *TwoDStaticArrayPtr; /** * 初始化动态二维数组 */ TwoDArrayPtr initArray(int r, int c){ int i; TwoDArrayPtr p = (TwoDArrayPtr)malloc(sizeof(struct TwoDArray)); p->rows = r; p->cols = c; p->data = (int**)malloc(r * sizeof(int*)); for (i = 0; i < r; i ++){ p->data[i] = (int*)malloc(c * sizeof(int)); } return p; } /** * 随机填充数组 */ void randomArray(TwoDArrayPtr p, int low, int high){ int i, j; for (i = 0; i < p->rows; i ++){ for (j = 0; j < p->cols; j ++) { p->data[i][j] = rand() % (high - low) + low; } } } /** * 打印二维数组 */ void printArray(TwoDArrayPtr p){ int i, j; for (i = 0; i < p->rows; i ++){ for (j = 0; j < p->cols; j ++) { printf("%d, ", p->data[i][j]); } printf("\r\n"); } } /** * 矩阵乘法 */ TwoDArrayPtr mulArray(TwoDArrayPtr a, TwoDArrayPtr b){ int i, j, k, sum; if (a->cols != b->rows){ printf("矩阵无法相乘\r\n"); return NULL; } TwoDArrayPtr res = initArray(a->rows, b->cols); for (i = 0; i < a->rows; i ++){ for (j = 0; j < b->cols; j ++) { sum = 0; for (k = 0; k < a->cols; k ++) { sum += a->data[i][k] * b->data[k][j]; } res->data[i][j] = sum; printf("sum = %d, ", sum); } } return res; } /** * 测试动态二维数组 */ void testDynamic(){ TwoDArrayPtr a, b, c; a = initArray(3, 2); randomArray(a, 1, 5); printf("第一个矩阵:\r\n"); printArray(a); b = initArray(2, 4); randomArray(b, 4, 9); printf("第二个矩阵:\r\n"); printArray(b); c = mulArray(a, b); printf("结果矩阵:\r\n"); printArray(c); } /** * 初始化静态二维数组 */ TwoDStaticArrayPtr initStatic(){ int i, j; TwoDStaticArrayPtr p = (TwoDStaticArrayPtr)malloc(sizeof(struct TwoDStaticArray)); p->rows = ROWS; p->cols = COLS; for (i = 0; i < ROWS; i ++){ for (j = 0; j < COLS; j ++) { p->data[i][j] = i * 10 + j; printf("(%d, %d): %d; ", i, j, &(p->data[i][j])); } } return p; } /** * 主函数 */ int main(){ testDynamic(); TwoDStaticArrayPtr p = initStatic(); return 1; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/19 22:20:03

6.C# —— 类与对象、数据类型、方法详解

目录 一、类和对象 1. 核心概念 2. 类的定义 3. 对象创建与赋值 二、值类型与引用类型 1. 值类型 2. 引用类型 三、方法的定义与调用 1. 方法概念 2. 方法定义 3. 方法调用 四、方法参数 1. 普通参数 2. 多参数 3. 对象参数 4. 默认参数 五、核心总结 一、类和…

作者头像 李华
网站建设 2026/5/19 22:18:47

从开发者视角感受Taotoken多模型聚合端点的响应速度

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 从开发者视角感受Taotoken多模型聚合端点的响应速度 在开发与调试基于大语言模型的应用程序时&#xff0c;API的响应速度与稳定性是…

作者头像 李华
网站建设 2026/5/19 22:14:21

亚马逊英国站儿童挤压玩具

亚马逊英国站儿童挤压玩具&#xff0c;核心定位为3岁以上儿童设计的感官类玩具&#xff0c;主打触觉反馈与手部精细动作锻炼&#xff0c;是平台上受众较广的儿童玩具品类之一&#xff0c;其核心特点与平台合规要求需重点关注。产品核心特征方面&#xff0c;这类玩具多采用热塑性…

作者头像 李华
网站建设 2026/5/19 22:13:27

Agent IDE 演进路线图:Claude Code 在商业项目中落地的 3 大技术拐点

1. 三个拐点不是时间刻度,而是上下文边界的三次坍缩 大多数人把“Agent IDE 演进路线图”理解成一张按年份排列的甘特图:2025年支持多文件,2026年接入RAG,2027年跑通Sub-agent。我带团队在金融核心交易系统里落地 Claude Code 的过程中发现,这种线性预期是最大的认知陷阱…

作者头像 李华
网站建设 2026/5/19 22:12:07

Pixhawk4无人车原地打转?保姆级教程教你调校电机转向与遥控器映射

Pixhawk4无人车原地打转&#xff1f;保姆级教程教你调校电机转向与遥控器映射 当你第一次组装完Pixhawk4无人车&#xff0c;满心期待地按下解锁按钮&#xff0c;却发现车辆只能前进和原地打转&#xff0c;那种挫败感我太熟悉了。三年前我第一次接触无人车时&#xff0c;整整一周…

作者头像 李华
网站建设 2026/5/19 22:09:42

智能硬件行业现状与未来趋势:技术、市场与盈利三重门解析

1. 项目概述&#xff1a;为什么现在要聊智能硬件&#xff1f;最近几年&#xff0c;身边的朋友、客户&#xff0c;甚至家里的长辈&#xff0c;都在问我同一个问题&#xff1a;“现在做智能硬件还有机会吗&#xff1f;” 这个问题背后&#xff0c;其实反映了一个普遍的行业焦虑&a…

作者头像 李华