鱼C论坛

 找回密码
 立即注册
查看: 1240|回复: 2

[已解决]What's wrong?

[复制链接]
发表于 2020-1-1 21:24:55 | 显示全部楼层 |阅读模式
1鱼币
  1. #include<stdio.h>

  2. int main()
  3. {
  4.     int a[2][3] = {
  5.         {1,2,3},
  6.         {4,5,6}
  7.     };
  8.     int b[3][2] = {
  9.         {1,4},
  10.         {2,5},
  11.         {3,6}
  12.     };


  13.     /*0 iw k-j
  14.     a[0][0]*b[0][0]
  15.     a[0][1]*b[1][0]
  16.     a[0][2]*b[2][0]
  17.     */
  18.     int i,j,in=0;
  19.     int r[4] = {0};
  20.     for(i = 0;i < 2;i++)
  21.     {
  22.         for(j = 0; j < 3;j++)
  23.         {
  24.             r[in++] = a[i][j]*b[j][i];
  25.         }
  26.     }
  27.     //printf("%d %d\n",b[0][0],b[0][1]);
  28.     printf("\
  29. | %d %d %d |   | %d %d |   | %d   %d |\n\
  30. | %d %d %d | * | %d %d | = | %d   %d |\n\
  31.                | %d %d |\n",a[0][0],a[0][1],a[0][2],\
  32.                b[0][0],b[0][1],r[0],r[1],a[1][0],a[1][1],a[1][2],\
  33.                b[1][1],b[1][2],r[2],r[3],b[2][0],b[2][1]);
  34. }
复制代码
结果却是:
| 1 2 3 |   | 25 36 |   | 1   4 |
| 4 5 6 | * | 5 3 | = | 9   16 |
               | 3 6 |
请指教到底是为什么,b[0][0]与b[0][1]发生了变化?





最佳答案
2020-1-1 21:24:56
int r[4] = {0}
这里改成  int r[6] = {0}

最佳答案

查看完整内容

int r[4] = {0} 这里改成 int r[6] = {0}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-1 21:24:56 | 显示全部楼层    本楼为最佳答案   
int r[4] = {0}
这里改成  int r[6] = {0}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-1 21:34:23 | 显示全部楼层
首先27行有问题,
  1. r[in++] = a[i][j]*b[j][i];
复制代码


然后,你为什么用两层for循环?


  1. // int r[4] = {0};                // 为什么要留4个int
  2. int r[3] = {0};
  3. for(size_t i = 0; i < 3; ++i)
  4. {
  5.         r[in++] = a[0][i] * b[i][0];
  6. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 06:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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