鱼C论坛

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

[已解决]What's wrong?

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

int main()
{
    int a[2][3] = {
        {1,2,3},
        {4,5,6}
    };
    int b[3][2] = {
        {1,4},
        {2,5},
        {3,6}
    };


    /*0 iw k-j
    a[0][0]*b[0][0]
    a[0][1]*b[1][0]
    a[0][2]*b[2][0]
    */
    int i,j,in=0;
    int r[4] = {0};
    for(i = 0;i < 2;i++)
    {
        for(j = 0; j < 3;j++)
        {
            r[in++] = a[i][j]*b[j][i];
        }
    }
    //printf("%d %d\n",b[0][0],b[0][1]);
    printf("\
| %d %d %d |   | %d %d |   | %d   %d |\n\
| %d %d %d | * | %d %d | = | %d   %d |\n\
               | %d %d |\n",a[0][0],a[0][1],a[0][2],\
               b[0][0],b[0][1],r[0],r[1],a[1][0],a[1][1],a[1][2],\
               b[1][1],b[1][2],r[2],r[3],b[2][0],b[2][1]);
}
结果却是:
| 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行有问题,
r[in++] = a[i][j]*b[j][i];

然后,你为什么用两层for循环?
// int r[4] = {0};                // 为什么要留4个int
int r[3] = {0};
for(size_t i = 0; i < 3; ++i)
{
        r[in++] = a[0][i] * b[i][0];
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-5 05:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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