C++ 矩阵乘法 设矩阵int a[4][3],矩阵int b[3][5].矩阵的数据由用户输入.输出新的矩阵c=a*b
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 05:28:31
C++ 矩阵乘法
设矩阵int a[4][3],矩阵int b[3][5].矩阵的数据由用户输入.输出新的矩阵c=a*b.输出格式:
c00 c01 c02 c03 c04
c10 c11 c12 c13 c14
c20 c21 c22 c23 c24
c30 c31 c32 c33 c34
矩阵乘法的计算方法:
对于矩阵A[m][q]*B[q][n],
相乘的结果为矩阵C[m][n]且对于矩阵C中每一项都有
C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + .+ A[i][q]*B[q][j]
注意:实际矩阵大小不一定是4*3和3*5,请仔细阅读下面的输入说明
第一行为第一个矩阵的大小x1和y1(1
设矩阵int a[4][3],矩阵int b[3][5].矩阵的数据由用户输入.输出新的矩阵c=a*b.输出格式:
c00 c01 c02 c03 c04
c10 c11 c12 c13 c14
c20 c21 c22 c23 c24
c30 c31 c32 c33 c34
矩阵乘法的计算方法:
对于矩阵A[m][q]*B[q][n],
相乘的结果为矩阵C[m][n]且对于矩阵C中每一项都有
C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + .+ A[i][q]*B[q][j]
注意:实际矩阵大小不一定是4*3和3*5,请仔细阅读下面的输入说明
第一行为第一个矩阵的大小x1和y1(1
#include<stdio.h>
#include<stdlib.h>
int main() {
int x1,y1,x2,y2;
int **a, **b, **c;
int i,j,k;
printf("intput x1,y1:");
scanf("%d%d", &x1, &y1);
printf("intput Array A(%d,%d):\n", x1, y1);
a = (int**)malloc(sizeof(int*)*x1);
for(i=0;i<x1;++i) {
a[i] = (int*)malloc(sizeof(int)*y1);
for(j=0;j<y1;++j) {
scanf("%d", &a[i][j]);
}
}
printf("\n");
printf("intput x2,y2:");
scanf("%d%d", &x2, &y2);
if(y1 != x2) {
printf("Wrong parameter.");
for(i=0;i<x1;++i) {
free(a[i]);
}
free(a);
return 0;
}
printf("intput Array A(%d,%d):\n", x2, y2);
b = (int**)malloc(sizeof(int*)*x2);
for(i=0;i<x2;++i) {
b[i] = (int*)malloc(sizeof(int)*y2);
for(j=0;j<y2;++j) {
scanf("%d", &b[i][j]);
}
}
printf("\n");
c = (int**)malloc(sizeof(int*)*x1);
for(i=0;i<x1;++i) {
c[i] = (int*)malloc(sizeof(int)*y2);
for(j=0;j<y2;++j) {
c[i][j] = 0;
for(k=0;k<y1;++k) {
c[i][j] += a[i][k]*b[k][j];
}
}
}
for(i=0;i<x1;++i) {//输出c
for(j=0;j<y2;++j) {
printf("%d ", c[i][j]);
}
printf("\n");
}
//释放空间
for(i=0;i<x1;++i) {
free(a[i]);
free(c[i]);
}
free(a);
free(c);
for(i=0;i<x2;++i) {
free(b[i]);
}
free(b);
return 0;
}不定大小,完全满足题意~
#include<stdlib.h>
int main() {
int x1,y1,x2,y2;
int **a, **b, **c;
int i,j,k;
printf("intput x1,y1:");
scanf("%d%d", &x1, &y1);
printf("intput Array A(%d,%d):\n", x1, y1);
a = (int**)malloc(sizeof(int*)*x1);
for(i=0;i<x1;++i) {
a[i] = (int*)malloc(sizeof(int)*y1);
for(j=0;j<y1;++j) {
scanf("%d", &a[i][j]);
}
}
printf("\n");
printf("intput x2,y2:");
scanf("%d%d", &x2, &y2);
if(y1 != x2) {
printf("Wrong parameter.");
for(i=0;i<x1;++i) {
free(a[i]);
}
free(a);
return 0;
}
printf("intput Array A(%d,%d):\n", x2, y2);
b = (int**)malloc(sizeof(int*)*x2);
for(i=0;i<x2;++i) {
b[i] = (int*)malloc(sizeof(int)*y2);
for(j=0;j<y2;++j) {
scanf("%d", &b[i][j]);
}
}
printf("\n");
c = (int**)malloc(sizeof(int*)*x1);
for(i=0;i<x1;++i) {
c[i] = (int*)malloc(sizeof(int)*y2);
for(j=0;j<y2;++j) {
c[i][j] = 0;
for(k=0;k<y1;++k) {
c[i][j] += a[i][k]*b[k][j];
}
}
}
for(i=0;i<x1;++i) {//输出c
for(j=0;j<y2;++j) {
printf("%d ", c[i][j]);
}
printf("\n");
}
//释放空间
for(i=0;i<x1;++i) {
free(a[i]);
free(c[i]);
}
free(a);
free(c);
for(i=0;i<x2;++i) {
free(b[i]);
}
free(b);
return 0;
}不定大小,完全满足题意~
C++ 矩阵乘法 设矩阵int a[4][3],矩阵int b[3][5].矩阵的数据由用户输入.输出新的矩阵c=a*b
计算矩阵c=a+b(注:矩阵a,矩阵b,矩阵C都是3*3的大小.)
C++中输入矩阵的行和列,A矩阵元素是行+列,B矩阵元素是行-列,输出A矩阵B矩阵.C矩阵为A乘以B.输出C矩阵
已知A是一个3╳4的矩阵,B是一个4╳5的矩阵,编程求A╳B得到的新矩阵C,并输出C矩阵
已知A是一个3行4列的矩阵.B是一个4行5列的矩阵.编程求A×B所得到的新矩阵C.并输出矩阵C
线性代数 选择 设A为3×4矩阵,B为2×3矩阵,C为4×3矩阵,则下列乘法运算不能进行的是( ).
C语言输入一个3行5列的矩阵数据,输出矩阵中每行最大值
已知A是一个3*4的矩阵,B是一个4*5的矩阵,编程求A*B得到的乘积矩阵C,并按矩阵形式输出C
设A是3*5的矩阵,b是2*4的矩阵且乘积矩阵acb有意义,则c是
设A为3*4矩阵,B为5*2矩阵且乘积矩阵ACtBt有意义,则C为()矩阵?
c语言:输入一个2行3列的矩阵A和一个3行4列的矩阵B,计算两矩阵的乘积
定义两个相同大小的矩阵,输入矩阵A的所有元素,将矩阵A复制到矩阵B,然后输出矩阵B