回 帖 发 新 帖 刷新版面

主题:数组阶乘

数组阶乘输出时只有第一排数,后面就不知什么??为什么会这样??请教??请细说!谢谢哦!!





#include<iostream>
using namespace std;
int matrix_multi(double a[][5],double b[][3], double c[][3],int l,int m,int n)
{     
    int i,j,k;
    for(i=0;i<1;i++)
        for(j=0;j<n;j++)
        {
            c[i][j]=0;
            for(k=0;k<m;k++)
                c[i][j]=c[i][j]+a[i][k]*b[k][j];
        }
        return c[i][j];
}
int main()
{
    double a[4][5]={
        1.0, 3.0, -2.0, 0.0, 4.0,
        -2.0, -1.0, 5.0, -7.0, 2.0,
        0.0, 8.0, 4.0, 1.0, -5.0,
        3.0, -3.0, 2.0, -4.0, 1.0
    };
    double b[5][3]=
    {
        4.0, 5.0, -1.0,
        2.0, -2.0, 6.0,
        7.0, 8.0, 1.0,
        0.0, 3.0, -5.0,
        9.0, 8.0, -6.0
    };
                    
double c[4][3];
matrix_multi(a,b,c,4,5,3);
cout<<"The result is c="<<endl;
for(int i=0;i<4;i++)
{
for(int j=0;j<3;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}

return 0;
}

回复列表 (共15个回复)

11 楼

你返回这个return c[i][j];是干什么用的?而且越界了

12 楼

是,我改了就对了
#include<iostream>
using namespace std;
int matrix_multi(double a[][5],double b[][3], double c[][3],int l,int m,int n)
{     
    int i,j,k;
    for(i=0;i<l;i++)   //这里把数字的1改成小写的L(你的形参)
        for(j=0;j<n;j++)
        {
            c[i][j]=0;
            for(k=0;k<m;k++)
                c[i][j]=c[i][j]+a[i][k]*b[k][j];
        }
        return c[i-1][j-1];
}
int main()
{
    double a[4][5]={
        1.0, 3.0, -2.0, 0.0, 4.0,
        -2.0, -1.0, 5.0, -7.0, 2.0,
        0.0, 8.0, 4.0, 1.0, -5.0,
        3.0, -3.0, 2.0, -4.0, 1.0
    };
    double b[5][3]=
    {
        4.0, 5.0, -1.0,
        2.0, -2.0, 6.0,
        7.0, 8.0, 1.0,
        0.0, 3.0, -5.0,
        9.0, 8.0, -6.0
    };
    
    double c[4][3]={{0}};
    int g=matrix_multi(a,b,c,4,5,3);
    cout<<"The result is c="<<g<<endl;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<3;j++)
            cout<<c[i][j]<<" ";
        cout<<endl;
    }
    
    return 0;
}
结果输出:
The result is c=-5
32 15 -9
43 27 24
-1 -21 77
29 33 -5
Press any key to continue

13 楼

用void main matrix_multi....也不行啊?

14 楼

是啊!!是1的问题啊!!谢谢咯!加分!!

15 楼


深圳华信群英科技有限公司,目前主要从事软件外包开发、高级软件人才定向输送等业务,面对日益严峻的大学生就业难和IT企业招聘难,自2006以来,与知名通信软件公司正式签订定向输送人才的合作协议,针对想进入软件行业的人员提供企业实训,实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段,共计900学时。
企业订单委培,内训前签订就业安置协议,100%保证就业。实训结束之后,在华信群英科技及其战略合作伙伴从事通信软件研发工作。欢迎有意向者加QQ:649846168咨询。

我来回复

您尚未登录,请登录后再回复。点此登录或注册