做c++作业遇到的心塞问题

吱吱吱吱涵 2015-04-26 03:19:25
小弟的电脑是mac,用xcode写c++作业,遇到了一个没能解决的问题,在此抛出,向大家请教。

事情是这样的,



这是小弟在不修改代码的情况下做的两次测试,输入的数据相同,然而矩阵输出的结果却不同。

在多次测试中发现,矩阵a(先输入的矩阵)从第5个元素开始被矩阵b(后输入的矩阵)的元素取代。

然而蹊跷的是小弟把代码在win8.1 codebloks IDE 中测试三次并没有上述错误。

下面是小弟写的代码的一部分,贴出来


matrix::matrix(int _row,int _column ,int *par) //含有参数的构造函数
{
setrow(_row);
setcolumn(_column);
p = new int(_row * _column);
for (int i = 0; i < row * column; i++)
{
p[i] = par[i];
}
}


matrix::matrix(matrix & m) //拷贝构造函数
{
row = m.row;
column = m.column;
p = new int (m.row * m.column);
for (int i = 0; i < row * column; i++)
{
p[i] = m.p[i];
}
}


ostream & operator<<( ostream & left, const matrix & right)
{
for (int i = 0; i < right.row; i++)
{
for (int j = 0; j < right.column; j++)
{
left << right.p[i * right. column + j] <<" ";
}
cout << endl;
}
return left;
}


istream & operator>>( istream & left, matrix & right)
{
for (int i = 0; i < right.row; i++)
{
for (int j = 0; j < right.column; j++)
{
left >> right.p[i * right. column + j];
}
cout << endl;
}
return left;
}






int main()
{
int arow = 0 ,brow = 0 ,acolumn = 0 ,bcolumn = 0;
int choice;

cout << "请输入矩阵a的行数:" <<endl;
cin >> arow;
cout << "请输入矩阵a的列数:" <<endl;
cin >> acolumn;
int *pa = new int[arow * acolumn];
cout << "请输入a的元素:" <<endl;
for (int i = 0; i < arow * acolumn ; i++)
{
cin >> pa[i];
}

cout << "请输入矩阵b的行数:" <<endl;
cin >> brow;
cout << "请输入矩阵b的列数:" <<endl;
cin >> bcolumn;
int *pb = new int[brow * bcolumn];
cout << "请输入b的元素:" <<endl;
for (int j = 0; j < brow * bcolumn ; j++)
{
cin >> pb[j];
}
//创建矩阵a、b

matrix a(arow ,acolumn ,pa);
matrix b(brow ,bcolumn ,pb);
cout << "******选择对矩阵的操作******" <<endl;
cout << "1.显示被创建的矩阵" <<endl;
cout << "2.判断矩阵a、b是否相等" <<endl;
cout << "3.矩阵加法" <<endl;
cout << "4.矩阵减法" <<endl;
cout << "5.矩阵乘法" <<endl;
cout << "6.退出" <<endl;
cin >> choice;
while (choice!=6)
{
switch (choice)
{
case 1:
cout << "矩阵a为:\n" << a << endl;
cout << "矩阵b为:\n" << b << endl;
break;
………
………

...全文
382 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
《深入浅出 C++》视频教程详细、系统地介绍了 C++ 开发中方方面面的技术细节,整个课程涵盖知识点非常多,知识模块囊括 名字空间、类与对象、继承与多态、各类友元、异常机制、函数模板、类模板、STL容器操作等等,学完之后将拥有C++开发的非常坚实的功底。 注意:本套视频教程来源于线下的实体班级,因此视频中有少量场景对话和学生问答,对此比较介意的亲们谨慎购买。 本套视频教程不仅会讲清楚概念和相应知识点,而且会抽丝剥茧,讲清楚来龙去脉,站在编程语言设计者的角度讲清楚为什么会出现这样的语法,站得高才能看得远,而不仅仅纠缠于细碎的语法。既有登高望远的视角,又有俯身前行的实践,有别于市面上大多数流于表面的教程。下面是讲解迭代器的一节视频的截图: 每个知识点不仅仅会通过视频讲解清楚,并且会配以精心安排的实验和作业,用来保证学习过程中切实掌握核心技术和概念,通过实验来巩固,通过实验来检验,实验与作业的目的是发现问题,发现技术盲点,通过答疑和沟通夯实技术技能。注意:本套视频教程包含全套11套作业题,覆盖所有视频知识点,循序渐进,各个击破。下面是部分作业题目展示,每道题都有知识点说明,是检验学习效果的一大利器:常见问题:问:零基础可以学习吗?答:这门课程并非针对完全零基础的学员,学习这门课程需要对C语言有了一定了解的。问:遇到问题可以答疑吗?答:可以的,购买课程后可以联系到我,安排进入专门的QQ答疑群。不仅可以向老师提问,也可以跟其他同学讨论,结交兴趣相投的朋友。问:学完能什么?答:C++是众多开发岗位的必备技能,也是进入面向对象编程领域的一门利器,可以胜任很多岗位的职业要求。尤其是对游戏开发、游戏引擎、算法、界面开发、系统开发等等,C++都是热门技术。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧