L1-048. 矩阵A乘以B
来源:互联网 发布:windows cbs log损坏 编辑:程序博客网 时间:2024/06/05 18:43
L1-048. 矩阵A乘以B
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越
给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra行、Ca列,B有Rb行、Cb列,则只有Ca与Rb相等时,两个矩阵才能相乘。
输入格式:
输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。
输出格式:
若输入的两个矩阵的规模是匹配的,则按照输入的格式输出乘积矩阵AB,否则输出“Error: Ca != Rb”,其中Ca是A的列数,Rb是B的行数。
输入样例1:2 31 2 34 5 63 47 8 9 0-1 -2 -3 -45 6 7 8输出样例1:
2 420 22 24 1653 58 63 28输入样例2:
3 238 2643 -50 173 2-11 5799 6881 72输出样例2:
Error: 2 != 3
记得把有几行几列输出
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); int Ra, Ca, Rb, Cb; int i, j, k, count = 0; int **mat1, **mat2; //A矩阵 scanf("%d%d", &Ra, &Ca); mat1 = (int**)malloc(sizeof(int*)*Ra); for (i = 0; i < Ra; i++) mat1[i] = (int*)malloc(sizeof(int)*Ca); for (i = 0; i < Ra; i++) for (j = 0; j < Ca; j++) scanf("%d", &mat1[i][j]); //判断规模 scanf("%d%d", &Rb, &Cb); if (Ca != Rb) { printf("Error: %d != %d\n", Ca, Rb); return 0; } //B矩阵 mat2 = (int**)malloc(sizeof(int*)*Rb); for (i = 0; i < Rb; i++) mat2[i] = (int*)malloc(sizeof(int)*Cb); for (i = 0; i < Rb; i++) for (j = 0; j < Cb; j++) scanf("%d",&mat2[i][j]); printf("%d %d\n", Ra, Cb); //相乘求和 for (i = 0; i < Ra; i++) { for (j = 0; j < Cb; j++) { for (k = 0; k < Ca; k++) count += mat1[i][k] * mat2[k][j]; if (j == 0) printf("%d", count); else printf(" %d", count); count = 0; } printf("\n"); } return 0;}
0 0
- L1-048. 矩阵A乘以B
- L1-048. 矩阵A乘以B
- L1-048. 矩阵A乘以B
- L1-048. 矩阵A乘以B
- L1-048. 矩阵A乘以B
- L1-048. 矩阵A乘以B
- L1-048. 矩阵A乘以B
- L1-048. 矩阵A乘以B
- L1-8. 矩阵A乘以B
- PAT L1-048 矩阵A乘以B
- L1-4A乘以B
- L1-036. A乘以B
- L1-036. A乘以B
- L1-036. A乘以B
- L1-036. A乘以B
- 团体程序设计天梯赛-练习集 L1-048. 矩阵A乘以B
- 矩阵A乘以B
- (pat)L1-4. A乘以B,L1-5. A除以B,L1-6. 新世界
- Lock
- J2EE中的各种工程的介绍
- 学习人工智能以前应该知道的
- dbutils--1.基本
- socket中close()和shutdown()区别
- L1-048. 矩阵A乘以B
- Logback控制台输出类名行号带链接的Pattern配置
- Sublime Text license
- 洛谷 P3374【模板】树状数组 1
- 用逻辑分析仪对I2C总线进行分析
- Error:Failed to complete Gradle execution. Cause: Unknown command-line option '-X'
- Java多线程volatile详解
- EJB+JPA实现总结
- 【面向对象】三重定义——重构、重写、重载