我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

« 1 2» Pages: ( 1/2 total )
本页主题: 哪位大人帮我看看这个程序的阿 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

seast



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2806
威望: 0
浮云: 1585
在线等级:
注册时间: 2006-11-05
最后登陆: 2010-03-12

5come5帮你背单词 [ vomit // v. 呕,吐 ]


哪位大人帮我看看这个程序的阿

帮我看看这个程序哪个地方出错了!
老师说,对象矩阵没有初始化,可是我还是没有明白!谢谢阿

# include <iostream>
# include <cmath>

using namespace std;

class matrix
{
public :
    matrix (int dims);
    ~matrix();
    setmatrix(double *a);
    printM();
private:
    int index;
    double *matrixA;
};

matrix ::matrix(int dims)
{
    int index =dims;
    matrixA = new double[index * index];
}

matrix ::~matrix()
{
    delete [] matrixA;
}

matrix ::setmatrix (double *a )
{
    for (int i=0; i< index * index ; i++)
            *(matrixA + i) =  a [ i ];
}

matrix ::printM()
{
    cout << " the  matrix is "  << endl ;
    for (int i=0;i<index ;i++)
        for (int j=0;j < index ;j++)
            cout << * (matrixA + i* index +j)  << " " ;
            cout << endl ;
}


void main ()

    matrix matrix1(2);
    double a[]= {1.0, 2.0, 3.0, 4.0 } ;
    matrix1.setmatrix(a);
    matrix1.printM ( );
}


[ 此帖被seast在2007-11-30 16:48重新编辑 ]
顶端 Posted: 2007-11-30 15:59 | [楼 主]
seast



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2806
威望: 0
浮云: 1585
在线等级:
注册时间: 2006-11-05
最后登陆: 2010-03-12

5come5帮你背单词 [ crude /kru:d/ a. 粗糙的;天然的;粗鲁的;n. 原材料,天然物质 ]


哪位大人帮我看看的阿  我都快晕啦!
顶端 Posted: 2007-11-30 16:16 | [1 楼]
seekts



性别: 帅哥 状态: 该用户目前不在线
等级: 前途无量
家族: 丢丢
发贴: 9456
威望: 0
浮云: 1106
在线等级:
注册时间: 2006-11-12
最后登陆: 2009-07-08

5come5帮你背单词 [ habitual /hə'bituəl/ a. 日常的,习惯的,惯常的 ]


是干什么用的?
顶端 Posted: 2007-11-30 16:17 | [2 楼]
seast



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2806
威望: 0
浮云: 1585
在线等级:
注册时间: 2006-11-05
最后登陆: 2010-03-12

5come5帮你背单词 [ confess /kən'fes/ vt. 坦白,供认,承认 ]


原来是用来做全选主元高斯消去法 解方程组!这只是一部分,这部分就是调用现在的数组a[ ] ;并输出1
顶端 Posted: 2007-11-30 16:26 | [3 楼]
卡西莫多





性别: 帅哥 状态: 该用户目前不在线
等级: 初出茅庐
发贴: 80
威望: 0
浮云: 1133
在线等级:
注册时间: 2005-11-13
最后登陆: 2008-04-11

5come5帮你背单词 [ answer /'a:nsə/ v. 回答,答复;n. 回答,答复 ]


matrix ::matrix(int dims)
{
    int index =dims;
    matrixA = new double[index * index];
}

这个复制构造函数用于创建一个 index*index 个元素的一维数组,然后martixA用于指向这个数组 所以matrix matrix1(2) 就是创建了一个matrix类的对象,并使用上面提到的复制构造函数创建一个 2*2=4个元素的数组,martixA指向这个数组,但数组里边值为空;
很显然 matrix ::setmatrix (double *a )
{
    for (int i=0; i< index * index ; i++)
            *(matrixA + i) =  a;
}
就是想数组里边不断放值了
那么matrix ::printM()函数的功能就不用说了

上面只是个人的分析,如果有错,欢迎指出哈
顶端 Posted: 2007-11-30 16:34 | [4 楼]
seast



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2806
威望: 0
浮云: 1585
在线等级:
注册时间: 2006-11-05
最后登陆: 2010-03-12

5come5帮你背单词 [ ability /ə'biliti/ n. 能力,本领才能,才识 ]


Quote:
引用第4楼卡西莫多于2007-11-30 16:34发表的  :
matrix ::matrix(int dims)
{
    int index =dims;
    matrixA = new double[index * index];
}
.......

恩 ,不过我是想知道这个程序哪个地方出错了!
顶端 Posted: 2007-11-30 16:38 | [5 楼]
卡西莫多





性别: 帅哥 状态: 该用户目前不在线
等级: 初出茅庐
发贴: 80
威望: 0
浮云: 1133
在线等级:
注册时间: 2005-11-13
最后登陆: 2008-04-11

5come5帮你背单词 [ often /'o:fn/ ad. 经常,常常 ]


Quote:
引用第5楼seast于2007-11-30 16:38发表的  :

恩 ,不过我是想知道这个程序哪个地方出错了!

这个函数会出错??我到觉得这句有点问题:*(matrixA + i) =  a;
a是个数组指针,怎么把指针放到*(matrixA + i)里边呢??是不是??
顶端 Posted: 2007-11-30 16:41 | [6 楼]
seast



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2806
威望: 0
浮云: 1585
在线等级:
注册时间: 2006-11-05
最后登陆: 2010-03-12

5come5帮你背单词 [ television /'telivi3ən/ n. (缩)tv,电视(机) ]


Quote:
引用第6楼卡西莫多于2007-11-30 16:41发表的  :

这个函数会出错??我到觉得这句有点问题:*(matrixA + i) =  a;
a是个数组指针,怎么把指针放到*(matrixA + i)里边呢??是不是??

那个我已经改了!  不是这个问题
顶端 Posted: 2007-11-30 16:42 | [7 楼]
卡西莫多





性别: 帅哥 状态: 该用户目前不在线
等级: 初出茅庐
发贴: 80
威望: 0
浮云: 1133
在线等级:
注册时间: 2005-11-13
最后登陆: 2008-04-11

5come5帮你背单词 [ attend /ə'tend/ vt. 出席,参加,照顾,护理;vi. 注意,倾听,侍奉,伴随 ]


matrix1.printM;

应该是这样的吧:matrix1.printM();
顶端 Posted: 2007-11-30 16:46 | [8 楼]
seast



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2806
威望: 0
浮云: 1585
在线等级:
注册时间: 2006-11-05
最后登陆: 2010-03-12

5come5帮你背单词 [ referee /refə'ri:/ n. 裁判,公断人 ]


Quote:
引用第8楼卡西莫多于2007-11-30 16:46发表的  :
matrix1.printM;

应该是这样的吧:matrix1.printM();

呵呵 这个我已经改了
顶端 Posted: 2007-11-30 16:47 | [9 楼]
yunyue



性别: 帅哥 状态: 该用户目前不在线
等级: 版主
发贴: 979
威望: 5
浮云: 407
在线等级:
注册时间: 2006-06-18
最后登陆: 2012-06-08

5come5帮你背单词 [ freezer /fri:zə/ n. 冷藏箱(库),冰箱(库) ]


//修改后没问题了
# include <iostream>
# include <cmath>

using namespace std;

class matrix
{
public :
    matrix (int dims);
    ~matrix();
    void setmatrix(double *a);          //这里修改,加上void
    void printM();                            //这里修改,加上void
private:
    int index;
    double *matrixA;
};

matrix ::matrix(int dims)
{
    index = dims;                  //这里修改,多了 int
    matrixA = new double[index * index];
}

matrix ::~matrix()
{
    delete [] matrixA;
}

void matrix ::setmatrix (double *a)
{
    for (int i=0; i< index * index ; i++){
            *(matrixA+i) = *(a+i);        //这也改了一下,原来的也没问题
    }           
}

void matrix ::printM()
{
    cout << " the  matrix is "  << endl ;
    for (int i=0;i<index ;i++){
        for (int j=0;j < index ;j++){
            cout << * (matrixA + i* index +j)  << " " ;
        }
        cout << endl ;
    }        //加了一对{}
}


int main ()          //这里修改过
{
    matrix matrix1(2);
    double a[]= {1.0, 2.0, 3.0, 4.0 } ;
    matrix1.setmatrix(a);
    matrix1.printM();        //这里修改过,少了()
    return 0;                    //加了一条语句
}


[ 此帖被yunyue在2007-11-30 16:56重新编辑 ]
顶端 Posted: 2007-11-30 16:51 | [10 楼]
卡西莫多





性别: 帅哥 状态: 该用户目前不在线
等级: 初出茅庐
发贴: 80
威望: 0
浮云: 1133
在线等级:
注册时间: 2005-11-13
最后登陆: 2008-04-11

5come5帮你背单词 [ risk /risk/ n. & vt. (冒)风险 ]


你单步调试试一下,看具体错在那一个过程;
如果报错说是什么无法引用的外部符号,那就很有可能你没把一些头文件包括进来,比如说用到NEW函数,是否需要包括一个头文件(我不确定哈,但你可以找找看)??
顶端 Posted: 2007-11-30 16:53 | [11 楼]
seekts



性别: 帅哥 状态: 该用户目前不在线
等级: 前途无量
家族: 丢丢
发贴: 9456
威望: 0
浮云: 1106
在线等级:
注册时间: 2006-11-12
最后登陆: 2009-07-08

5come5帮你背单词 [ eventually /i'ventjuəli/ ad. 最后,终于 ]


matrix ::matrix(int dims)
{
    int index =dims;
    matrixA = new double[index * index];
}

这里有问题
顶端 Posted: 2007-11-30 16:54 | [12 楼]
seast



性别: 帅哥 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2806
威望: 0
浮云: 1585
在线等级:
注册时间: 2006-11-05
最后登陆: 2010-03-12

5come5帮你背单词 [ rape // n. 强奸,却取;vt. 强奸,洗动 ]


Quote:
引用第10楼yunyue于2007-11-30 16:51发表的  :
//修改后没问题了
# include <iostream>
# include <cmath>

using namespace std;
.......

谢谢阿  问问那 int  main  (  ) {...  return 0  }
与  void main ( ) {  }  有什么差别的阿!
顶端 Posted: 2007-11-30 16:55 | [13 楼]
卡西莫多





性别: 帅哥 状态: 该用户目前不在线
等级: 初出茅庐
发贴: 80
威望: 0
浮云: 1133
在线等级:
注册时间: 2005-11-13
最后登陆: 2008-04-11

5come5帮你背单词 [ magnificent /mæg'nifisnt/ a. 壮丽的,宏伟的 ]


Quote:
引用第10楼yunyue于2007-11-30 16:51发表的  :
//修改后没问题了
# include <iostream>
# include <cmath>

using namespace std;
.......

呵呵,还是实践比说的解决问题要快哈
顶端 Posted: 2007-11-30 16:56 | [14 楼]
« 1 2» Pages: ( 1/2 total )
我来我网·5come5 Forum » 程序员之家

Total 0.016698(s) query 7, Time now is:06-01 06:11, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号