113.实矩阵乘法运算

举报
C语言与CPP编程 发表于 2022/05/05 23:13:06 2022/05/05
【摘要】 #include "stdio.h"#define MAX 255void MatrixMul(a,b,m,n,k,c) /*实矩阵相乘*/int m,n,k; /*m:矩阵A的行数, n:矩阵B的行数, k:矩阵B的列数*/double a[],b[],c[]; /*a为A矩阵, b为B矩阵, c为结果,即c = AB */{ in...

  
  1. #include "stdio.h"
  2. #define MAX 255
  3. void MatrixMul(a,b,m,n,k,c) /*实矩阵相乘*/
  4. int m,n,k; /*m:矩阵A的行数, n:矩阵B的行数, k:矩阵B的列数*/
  5. double a[],b[],c[]; /*a为A矩阵, b为B矩阵, c为结果,即c = AB */
  6. {
  7. int i,j,l,u;
  8. /*逐行逐列计算乘积*/
  9. for (i=0; i<=m-1; i++)
  10. for (j=0; j<=k-1; j++)
  11. {
  12. u=i*k+j; c[u]=0.0;
  13. for (l=0; l<=n-1; l++)
  14. c[u]=c[u]+a[i*n+l]*b[l*k+j];
  15. }
  16. return;
  17. }
  18. main()
  19. {
  20. int i,j,m,n,k;
  21. double A[MAX];
  22. double B[MAX];
  23. double C[MAX];
  24. for(i=0;i<MAX;i++)
  25. C[i]=1.0;
  26. clrscr();
  27. puts("This is a real-matrix-multiplication program.\n");
  28. puts("It calculate the two matrixes C(m*k)=A(m*n)B(n*k).\n");
  29. printf(" >> Please input the number of rows in A, m= ");
  30. scanf("%d",&m);
  31. printf(" >> Please input the number of cols in A, n= ");
  32. scanf("%d",&n);
  33. printf(" >> Please input the number of cols in B, k= ");
  34. scanf("%d",&k);
  35. printf(" >> Please input the %d elements in A one by one:\n",m*n);
  36. for(i=0;i<m*n;i++)
  37. scanf("%lf",&A[i]);
  38. printf(" >> Please input the %d elements in B one by one:\n",n*k);
  39. for(i=0;i<n*k;i++)
  40. scanf("%lf",&B[i]);
  41. MatrixMul(A,B,m,n,k,C); /*计算C的结果*/
  42. /*格式化输出结果*/
  43. printf("\n >> The result of C(%d*%d)=A(%d*%d)B(%d*%d) is:\n",m,k,m,n,n,k);
  44. for (i=0; i<m; i++)
  45. {
  46. for (j=0; j<k; j++)
  47. printf("%10.5f ",C[i*k+j]);
  48. printf("\n");
  49. }
  50. printf("\n Press any key to quit...\n");
  51. getch();
  52. return 0;
  53. }

文章来源: blog.csdn.net,作者:程序员编程指南,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41055260/article/details/124576406

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。