Justin1 发表于 2020-4-13 20:36:02

C语言 数组求矩阵问题

代码如下。我有个问题一直解决不了, 就是 m和j的同时取值问题。希望高手相助一下,帮忙改一下代码。或者说一下改的方式   , 谢谢

#include <stdio.h>

int main()
{
        int A = {{1, 2, 3}, {4, 5, 6}};
        int B = {{1, 4}, {2, 5}, {3, 6}};
        int C = {0};
        int i, j , m, n;
       
        //两矩阵相乘 A*B= C不管结果 先只管中间过程
        for(i = 0; i < 2; i++) //以A为第一项 进行计算
        {
                for(m = 0; m < 3; m++) // B的行数依次选取
                {
                        if (m = 0) // 问题来了,如果要让这个程序正常运行,那么 m和j必须同时改变
                        {
                                j = 0;
                        }
                        else
                        {
                                j += 1;
                        }            // 我想的是下面for循环结束后 直接到上面的for循环取 m = 0
                        // 事与愿违, 是个死循环,直接读if-else 语句了
                        for( n=0; n<2; n++)
                        {
                                C += A * B;
                                printf("C %d %d = %d%d \n", i, n, C, j);       
                               
                                if( (i == 1 && j ==2) == 1)
                                {
                                        goto FINDIT;
                                }
                        }
                }
        }
FINDIT: printf("C %d %d = %d\n", i, n, C);       
       
        return 0;
}

永恒的蓝色梦想 发表于 2020-4-13 20:36:44

先领个鱼币啦{:10_327:}

Justin1 发表于 2020-4-13 20:37:01

这个问题在于 第二个for循环下面的if-eslse语句,我知道好像不能这么用了,但还是没有好的解决方法

Cool_Breeze 发表于 2020-4-13 21:00:37

if (m = 0)
if (m == 0)

sunrise085 发表于 2020-4-13 21:04:41

哪有你想的那么麻烦,j和m本来就一个是同一个量啊。
外两层循环就是C的行和列,最内层循环就是求C对应的值
#include <stdio.h>
int main()
{
    int A = {{1, 2, 3}, {4, 5, 6}};
    int B = {{1, 4}, {2, 5}, {3, 6}};
    int C = {0};
    int i, j , m, n;
   
    for(i = 0; i < 2; i++)
    {
      for( n=0; n<2; n++)
      {
            for(j=0;j<3;j++)
                C += A * B;
            printf("C[%d][%d] = %d\n", i, n, C);
      }
    }
      return 0;
}

Justin1 发表于 2020-4-13 21:33:40

sunrise085 发表于 2020-4-13 21:04
哪有你想的那么麻烦,j和m本来就一个是同一个量啊。
外两层循环就是C的行和列,最内层循环就是求C对应的值 ...

{:10_266:}忘了矩阵的m和j是一样的了。谢谢dl

Justin1 发表于 2020-4-13 21:39:24

永恒的蓝色梦想 发表于 2020-4-13 20:36
先领个鱼币啦

还是谢谢了{:10_282:}
页: [1]
查看完整版本: C语言 数组求矩阵问题