问题标题
矩阵乘法 C语言设计,新人求解矩阵乘法
2019-7-1来自ip:14.188.137.92的网友咨询
浏览量:236 手机版
问题补充:
矩阵乘法 C语言设计-,新人求解矩阵乘法
网友答案
题目是否有问题. m * n的矩阵和n * p的矩阵.相乘的结果应该是一个m * p的矩阵.因此,以上面的例子,得到的应该是一个2 * 4的矩阵.下面是代码:#include< stdio.h >main(){int m, n, p, i, j, k;int A 10 10 , B 10 10 , C 10 10 ;scanf("%d%d%d", &m, &n, &p); for( i = 0; i < m; i++ ){for( j = 0; j < n; j++ ){scanf("%d", &A i j );}}for( i = 0; i < n; i++ ){for( j = 0; j < p; j++ ){scanf("%d", &B i j );}} for( i = 0; i < m; i++ )for( j = 0; j < p; j++ ){C i j = 0;for( k = 0; k < n; k++ )C i j += A i k * B k j ; }for( i = 0; i < m; i++ ){for( j = 0; j < p; j++ )printf( "%d ", C i j );printf( "\n" );}}
网友答案
#include#define N 3void main(){ int i,j, sum = 0; int aNN, bNN; int max , min,row_max = 0, col_max = 0, row_min = 0,col_min = 0; printf"请输入矩阵的元素:"; for( i = 0; i max ){ max= aij; row_max = i; col_max = j;}} printf" 最大元素为:%d,其所在行数为:%d,所在列数为:%d\n",max,row_max+1,col_max+1; printf" 最小元素为:%d,其所在行数为:%d,所在列数为:%d\n",min,row_min+1,col_min+1; for( i = 0; i
网友答案
#includeint p, q, k;int fun(float A2, float B1){ float C21 = { 0 }; for (p = 0; p < 2; ++p) { for (q = 0; q < 1; ++q) { for (k = 0; k < 2; ++k) Cpq += Apk * Bkq; } } for (p = 0; p < 2; p++) { for (q = 0; q < 1; q++) { printf("%f", Cpq); printf("\n"); } } return 0;}int main(){ float A22 = { 1, 1, 2, 1 }, B21 = {2, 1}; printf"矩阵A*矩阵B为:\n"; // 计算两个矩阵相乘;以22*21为例 fun(A, B);system("pause");return0;}祝你愉快!...
网友答案
题目是否有问题. m * n的矩阵和n * p的矩阵.相乘的结果应该是一个m * p的矩阵. 因此,以上面的例子,得到的应该是一个2 * 4的矩阵. 下面是代码: #include main() { int m, n, p, i, j, k; int A 10 10 , B 10 10 , C 10 10 ; scanf("%d%d%d", &m, &n, &p); for( i = 0; i < m; i++ ) { for( j = 0; j < n; j++ ) { scanf("%d", &A i j ); } } for( i = 0; i < n; i++ ) { for( j = 0; j < p; j++ ) { scanf("%d", &B i j ); } } for( i = 0; i < m; i++ ) for( j = 0; j < p; j++ ) { C i j = 0; for( k = 0; k < n; k++ ) C i j += A i k * B k j ; } for( i = 0; i < m; i++ ) { for( j = 0; j < p; j++ ) printf( "%d ", C i j ); printf( "\n" ); } }...
网友答案
#include "stdio.h"#include "stdlib.h"void main (){ int m,l,p,q;printf"输入第一个矩阵的维数m和l:\n";scanf("%d%d",&m,&l);printf"输入第二个矩阵的维数p和q:\n";scanf("%d%d",&p,&q);while (l!=p){printf"两个矩阵不匹配,不能进行相乘运算,请重新输入...\n\n";printf"输入第一个矩阵的维数m和l:\n";scanf("%d%d",&m,&l);printf"输入第二个矩阵的维数p和q:\n";scanf("%d%d",&p,&q);}double a200200={0}, b200200={0},sum=0;int i,j,k=0;for (i=0;i{for (j=0;j{aij=(double)rand()/RAND_MAX; }}printf"随机矩阵a是:\n";for (i=0;i{for (j=0;j{printf("%f ",aij);}printf("\n");}//coutfor (i=0;i{for (j=0;j{bij=(double)rand()/RAND_MAX; }}printf"随机矩阵b是:\n";for (i=0;i{for (j=0;j{printf("%f ",bij);}printf("\n");}printf("ab相乘结果为:\n");for (i=0;i{while (k{for (j=0;j{sum = aij*bjk+sum; } printf("%f ",sum);k++;sum=0;}k=0;printf("\n");}}如果不满足你要求,自己再改一下吧
网友答案
#includeint p, q, k;int fun(float A2, float B1){float C21 = { 0 };for (p = 0; p {for (q = 0; q {for (k = 0; k Cpq += Apk * Bkq;}}for (p = 0; p {for (q = 0; q {printf("%f", Cpq);printf("\n");}}return 0;}int main(){float A22 = { 1, 1, 2, 1 }, B21 = {2, 1};printf"矩阵A*矩阵B为:\n"; // 计算两个矩阵相乘;以22*21为例fun(A, B);system("pause");return0;}祝你愉快!
网友答案
#include#include#define ROW 3//行数#define COL 3//列数void MultiplyMatrix(int aROWCOL,int bCOLROW,int cCOLCOL){ int i,j,k; for(i=0;i
网友答案
1,若程序定义为三行三列的矩阵,并在主函数中键盘赋值。
请编写函数juzhen(int a3,int n),函数功能是:使矩阵左下角元素中的值乘以.例如:若矩阵中的值为: 1 9 7 2 3 84 5 6 n=3,则矩阵值变为:1 9 76 9 812 15 18 注:二维数组下三角元素每行最后元素的列标和该列的列号一致#include int juzhen(int a3,int n) { int i,j; for (i=1;i矩阵相乘的基本方法是:矩阵Xy中行列下标分别为i,j的元素的值,是矩阵X中第i行上四个元素与矩阵Y中第j列上四个元素对应相乘的积。
X和Y矩阵原型可运行后看到!#include #include void juzhen (int a34,int b43,int ab33) { int i,j,z; for (i=0;ic语言矩阵乘法程序
我来回答
验证码:
大家还关注