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

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

seast



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

5come5帮你背单词 [ competition /kompə'tiən/ n. 竞赛,比赛 ]


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

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

# 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帮你背单词 [ some /sΛm/ a. 一些,少许,有些,某,某一个,大约,大概;pron.几个,有些人;ad. 大约,稍微 ]


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



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

5come5帮你背单词 [ staple /'steipl/ a. 主要的,重要的;n. 主要产品,重要商品,订书钉 ]


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



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

5come5帮你背单词 [ defer /di'fə:/ vt. 推迟,拖延 ]


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





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

5come5帮你背单词 [ skate /skeit/ vi. 滑冰;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帮你背单词 [ thrifty /'θrifti/ a. 节俭的,节约的 ]


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帮你背单词 [ well /wel/ int. 哎呀,好啦,那么;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帮你背单词 [ access /'ækses/ n. 接近,获得(机会等),入口,通道 ]


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帮你背单词 [ equator /i'kweitə/ n. 赤道 ]


matrix1.printM;

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



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

5come5帮你背单词 [ finding /faindiŋ/ n. 发现(物),(pl.)调查(或研究的)结果 ]


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帮你背单词 [ specialize /'speəlaiz/ vt. 专攻,专门研究,使…特殊化;vi. 专攻,专门研究 ]


//修改后没问题了
# 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帮你背单词 [ hypothesis /hai'poθisi:z/ n. 假设,假说,前提 ]


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



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

5come5帮你背单词 [ fit /fit/ v. (使)适合,合身,安装,装置;a. 适合的,适当的,健康的;n. (病的)发作,突发 ]


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帮你背单词 [ january /'d3əænjuəri/ n. 一月 ]


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帮你背单词 [ sway /swei/ vi. 摇动,摇晃,倾斜,动摇;vt. 使…改变;n. 摇晃,影响力,支配作用 ]


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.014719(s) query 5, Time now is:11-22 21:28, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号