| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 816 人关注过本帖
标题:矩阵相乘的问题
只看楼主 加入收藏
小亦庄葛三娘
Rank: 1
等 级:新手上路
帖 子:24
专家分:5
注 册:2016-10-23
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:3 
矩阵相乘的问题
#include<stdio.h>

void matrix_multiply(int x, int y, int z, int m1[][y], int m2[][z], int r[][z]);
int main(void)
{
    int x = 2;
    int y = 3;
    int z = 4;
   
     int m1[x][y] = {{2,-6},
                    {3,5},
                    { 1,-1},
    };
    int m2[y][z] = {{4,-2,-4,-5},
                   {-7,-3,5,7},
    };
   
    int r[x][z];
   
    matrix_multiply(m1,m2,r,x,y,z);
   
    return 0;

}

void matrix_multiply(int x,int y, int z,int m1[][y], int m2[][z], int r[][z])
{
   
    int i,j,k;
    int sum ;
  
  for(k = 0; k < z; k++)
    {
        for(j = 0; j < y; j++)
        {
            sum = 0;
            for(i = 0; i < 2; i++)
            {
                sum = sum + m1[x][i] * m2[i][y];
            }
            r[i][k] = sum;
            printf("%5d", r[i][k]);
        }
        printf("\n");
    }
}
图片附件: 游客没有浏览图片的权限,请 登录注册

定义函数的时候总是有错误,希望大神指点


[此贴子已经被作者于2017-1-24 15:10编辑过]

2017-01-24 14:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:7 
你总得贴出编译器给出的错误信息吧
否则让别人瞎猜?
2017-01-24 15:08
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:7 
#include<stdio.h>

void matrix_multiply(int x, int y, int z, int m1[][2], int m2[][4], int r[][4]);
int main(void)
{
    int x = 2;
    int y = 3;
    int z = 4;
   
     int m1[3][2] = {2,-6,       //数组下标不用变量
                     3,5,
                     1,-1};
    int m2[3][4] = {4,-2,-4,-5,
                   -7,-3,5,7,};
   
    int r[2][4];
   
    matrix_multiply(x,y,z,m1,m2,r);
   
    return 0;

}

void matrix_multiply(int x,int y, int z,int m1[][2], int m2[][4], int r[][4])
{
   
    int i,j,k;
    int sum ;
  
  for(k = 0; k < z; k++)
    {
        for(j = 0; j < y; j++)
        {
            sum = 0;
            for(i = 0; i < 2; i++)
            {
                sum = sum + m1[x][i] * m2[i][y];
            }
            r[i][k] = sum;
            printf("%5d", r[i][k]);
        }
        printf("\n");
    }
}

早知做人那么辛苦!  当初不应该下凡
2017-01-24 15:53
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
收藏
得分:7 
二维数组在作为形参时,他的列数必须是确定的

//定义数组是,下标是常量。
int m1[x][y] = {{2,-6},
                     {3,5},
                     { 1,-1},//这里多个逗号
     };

[此贴子已经被作者于2017-1-24 18:03编辑过]

2017-01-24 18:00
快速回复:矩阵相乘的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049161 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved