本文共 1546 字,大约阅读时间需要 5 分钟。
以下是一个完整的Objective-C程序示例,用于实现两个关系矩阵A和B的乘积。该程序使用C风格的二维数组来表示矩阵,并执行标准的矩阵乘法运算。程序还包括简单的输入和输出功能,便于查看结果。
#import// 定义矩阵的维度#define ROW_A 2#define COL_A 2#define ROW_B 2#define COL_B 2// 定义矩阵的元素范围#define MIN_VALUE 0#define MAX_VALUE 1// 矩阵A的元素static double matrixA[ROW_A][COL_A] = { {0.5, 0.3}, {0.7, 0.1}};// 矩阵B的元素static double matrixB[ROW_B][COL_B] = { {0.4, 0.6}, {0.2, 0.5}};// 定义矩阵乘法函数static double *matrixMultiply(double (*A)[ROW_A][COL_A], double (*B)[ROW_B][COL_B]) { double *result = malloc(sizeof(double) * ROW_A); // 计算每一行与每一列的乘积之和 for (int i = 0; i < ROW_A; i++) { for (int j = 0; j < COL_A; j++) { result[i] = 0.0; for (int k = 0; k < COL_B; k++) { result[i] += A[i][k] * B[k][j]; } } } return result;}// 主函数int main() { // 初始化矩阵A和矩阵B double (*A) = matrixA; double (*B) = matrixB; // 计算矩阵乘积 double *C = matrixMultiply(A, B); // 输出结果 printf("矩阵A:\n"); for (int i = 0; i < ROW_A; i++) { for (int j = 0; j < COL_A; j++) { printf("%.2f ", A[i][j]); } printf("\n"); } printf("矩阵B:\n"); for (int i = 0; i < ROW_B; i++) { for (int j = 0; j < COL_B; j++) { printf("%.2f ", B[i][j]); } printf("\n"); } printf("矩阵乘积结果C:\n"); for (int i = 0; i < ROW_A; i++) { for (int j = 0; j < COL_A; j++) { printf("%.2f ", C[i][j]); } printf("\n"); } free(C); return 0;}
转载地址:http://ucifk.baihongyu.com/