真的很着急,数组命名已经更改过值,输出却还是初始化的值

RogerAng 2014-04-01 02:31:36
http://bbs.csdn.net/topics/390748094

#define INFINITY 10000
for(i=0;i<G.vexnum;++i)
{
for (j=0;j<G.vexnum;++j)
G.arcs[i][j].adj=0;//初始化邻接矩阵
}

void CreateGraph(MGraph &G)
{
//w是我输入的权值
G.arcs[i][j].adj=w;
G.arcs[j][i].adj=G.arcs[i][j].adj;
}

void Display(MGraph &G)
{
for (i=0;i<G.vexnum;i++)
{
printf("%12d\t",i+1);
for (j=0;j<G.vexnum;j++)
printf("%12d",G.arcs[i][j].adj); //这里的问题,输出仍然是初始化的1000
printf("\n");
}
}
...全文
138 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tbwork 2014-04-01
  • 打赏
  • 举报
回复
for(i=0;i<G.vexnum;++i) { for (j=0;j<G.vexnum;++j) G.arcs[i][j].adj=INFINITY;//初始化邻接矩阵 } 执行完毕了, i =3, j=3. 你输出的是 i = 0 1 2 j = 0 1 2
赵4老师 2014-04-01
  • 打赏
  • 举报
回复
不要依赖IDE的观察窗口显示复杂变量的值; 要依赖自己写的函数或代码片断显示复杂变量的值。
xiaohuh421 2014-04-01
  • 打赏
  • 举报
回复
CreateGraph Display 在前面两个函数中下断点, 查看执行顺序,或者是否执行了CreateGraph 你传的是引用, 理论上来说程序应该不会这样. 还有, 只看到你初始化为0, 没有看到你初始化为1000, 不知道你是不是自己看错了.

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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