鱼C论坛

 找回密码
 立即注册
查看: 3317|回复: 5

源于C语言的一道题

[复制链接]
发表于 2013-11-11 20:28:23 | 显示全部楼层 |阅读模式
10鱼币
编程计算两矩阵的乘积,越简单越好

最佳答案

查看完整内容

代码来着百度,你难道不会自己动手找找么?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-11-11 20:28:24 | 显示全部楼层
代码来着百度,你难道不会自己动手找找么?
  1. #include<stdio.h>


  2. float main()
  3. {
  4.         float a[100][100],b[100][100],c[100][100];//定义三个数组,分别存储矩阵A,B,C
  5.         int m1,n1,m2,n2,i1,j1,i2,j2,i3,j3,i4,j4,k;
  6.         float s[100][100]={0};//赋值使数组s元素初值全部为零
  7.         printf("请输入矩阵A行数m1,列数n1:");//输入矩阵A行数,列数
  8.         scanf("%d,%d",&m1,&n1);
  9.         printf("请输入矩阵B行数m2,列数n2:");//输入矩阵B行数,列数
  10.         scanf("%d,%d",&m2,&n2);
  11.         printf("\n\n");//如果不可以相乘,下面将出现判断,在此换行,便于观看
  12.         if(n1!=m2)
  13.                 printf("不可以相乘!!!");//判断是否可以相乘
  14.         printf("\n\n");
  15.         if((m1>100)||(n1>100))
  16.                 printf("数目过多!!!");//控制矩阵A元素数量在数组容纳范围内
  17.         else
  18.         {
  19.                 for(i1=1;i1<=m1;i1++)
  20.                 {
  21.                         for(j1=1;j1<=n1;j1++)
  22.                         {
  23.                                 printf("a[%d][%d]=:",i1,j1);
  24.                                 scanf("%f",&a[i1][j1]);//输入矩阵A元素
  25.                         }
  26.                 }
  27.         }
  28.         printf("\n");//分隔开A,B的元素输入,便于观看
  29.         if((m2>100)||(n2>100))
  30.                 printf("数目过多!!!");
  31.         else
  32.         {
  33.                 for(i2=1;i2<=m2;i2++)
  34.                 {
  35.                         for(j2=1;j2<=n2;j2++)
  36.                         {
  37.                                 printf("b[%d][%d]=:",i2,j2);
  38.                                 scanf("%f",&b[i2][j2]);//输入矩阵B元素
  39.                         }
  40.                 }
  41.         }
  42.         printf("矩阵A:\n");//输出矩阵A,便于观看,检验
  43.         for(i3=1;i3<=m1;i3++)
  44.         {
  45.                 for(j3=1;j3<=n1;j3++)
  46.                 {
  47.                         printf("%f ",a[i3][j3]);
  48.                         if(j3==n1)
  49.                                 printf("\n");
  50.                 }
  51.         }
  52.         printf("\n");//与矩阵B的输出结果隔开,便于观看
  53.         printf("矩阵B:\n");//输出矩阵A,便于观看,检验
  54.         for(i4=1;i4<=m2;i4++)
  55.         {
  56.                 for(j4=1;j4<=n2;j4++)
  57.                 {
  58.                         printf("%f ",b[i4][j4]);
  59.                         if(j4==n2)
  60.                                 printf("\n");
  61.                 }
  62.         }
  63.         printf("\n");
  64.         printf("矩阵C=A*B:\n");
  65.         for(i4=1;i4<=m1;i4++)
  66.         {
  67.                 for(j4=1;j4<=n2;j4++)
  68.                 {
  69.                         for(k=1;k<=n1;k++)
  70.                         {
  71.                                 s[i4][j4]=s[i4][j4]+a[i4][k]*b[k][j4];//定义矩阵乘法,相乘时,有一个指标是一样的,都用k
  72.                         }
  73.                         c[i4][j4]=s[i4][j4];//定义矩阵乘法
  74.                         printf("%f ",c[i4][j4]);
  75.                         if(j4==n2)
  76.                                 printf("\n");//控制在列指标到达N时换行
  77.                 }
  78.         }
  79.         return 0;
  80. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-11-12 00:11:53 | 显示全部楼层
同来学习的- -
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-11-12 13:57:25 | 显示全部楼层
...............................................:dizzy:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-11-12 20:09:00 | 显示全部楼层
太长拉,能再短一点吗?{:1_1:}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-11-14 15:28:39 | 显示全部楼层
顶一个。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-11 04:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表