回 帖 发 新 帖 刷新版面

主题:数组阶乘

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





#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个回复)

沙发

说个最简单的修改方法:函数的这个形参double c[][3],
修改为double& c[][3],
你现在的问题出在函数内计算的结果不能正确传回main函数,传递引用即可结局

板凳


高手这样不行啊!为什么引用调用有错误?

3 楼

error C2234: '<Unknown>' : arrays of references are illegal
: error C2111: pointer addition requires integral operand
: error C2440: 'return' : cannot convert from 'double *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
 : error C2664: 'matrix_multi' : cannot convert parameter 3 from 'double [4][3]' to 'double *[][3]'
 Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
执行 cl.exe 时出错.

4 楼

额,调试了一下,传递数组的引用要指定每一维……
类似这么用double (&c)[4][3]

5 楼

加没加之前都是一样啊!!只能输出第一行数,后面的就是乱程序啊!就不知是什么?

6 楼

这个是二维数组?
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
    };
我只在matlab里遇到,c++还可以这样写?解释一哈,嘿嘿

7 楼

是二维数组!要double b[15]这样表达吗?还是?请教!

8 楼

C++数组就是这样表达的啊!!

9 楼

我突然发现了在一个很猥琐的地方有个错误,大意了,楼主看看,l(字母)和1(数字)是不是很像啊,你看看你这里 for(i=0;i<1;i++)就知道原因了,哈哈哈哈哈。。。。。。。。。。。。

10 楼

不是!

我来回复

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