首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为啥这个程序初始化后改不了?

2012-06-25 
为什么这个程序初始化后改不了??这个程序在G.arcs初始化为0和5000后,再对G.arcs赋值就该不了了,哪位大侠说

为什么这个程序初始化后改不了??
这个程序在G.arcs初始化为0和5000后,再对G.arcs赋值就该不了了,哪位大侠说说是怎么回事?

#include <stdio.h>
#include <limits.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#define INFINITY 5000
#define MAXVEX 40
typedef char VexType;
typedef int AdjType;

typedef struct
{
int num;
char name[40];
char introduction[256];//想办法降低空间复杂度,以给出更多的字符信息。
}Vertexinfo;
typedef struct
{
int vexnum, arcnum; /* 图的顶点个数 */
  Vertexinfo vexs[MAXVEX]; /* 顶点信息 */
  AdjType arcs[MAXVEX][MAXVEX]; /* 如果i到j有边则赋为权值 */
}MGraph;
void chushihua(MGraph &G)

int i,j;
  G.vexnum=32;
G.arcnum=80;
for(i=0;i<G.vexnum;i++)
{G.vexs[i].num=i;}
 for(i=0;i<G.vexnum;i++)
{
for(j=0;j<G.vexnum;j++) 
G.arcs[i][j]=(i==j?0:INFINITY); //先赋值为无穷大and0
}  
 G.arcs[0][1]=50; G.arcs[0][2]=30; G.arcs[0][3]=280; G.arcs[0][4]=100; G.arcs[0][6]=150;
  G.arcs[1][10]=230; G.arcs[1][4]=5; G.arcs[1][12]=225; G.arcs[2][8]=110; G.arcs[2][9]=100;  
  G.arcs[3][4]=200; G.arcs[3][5]=40; G.arcs[3][16]=150; G.arcs[3][17]=135; G.arcs[4][17]=100;  
  G.arcs[5][17]=105; G.arcs[6][7]=50; G.arcs[7][32]=210; G.arcs[8][16]=10; G.arcs[8][19]=250;
  G.arcs[9][10]=230; G.arcs[10][11]=115; G.arcs[10][12]=70; G.arcs[10][15]=30; G.arcs[11][13]=50;  
  G.arcs[11][21]=100; G.arcs[12][13]=60; G.arcs[13][14]=50; G.arcs[14][31]=10; G.arcs[15][18]=200;
  G.arcs[16][30]=30; G.arcs[18][19]=100; G.arcs[18][20]=20; G.arcs[20][21]=100; G.arcs[21][22]=130;  
  G.arcs[22][23]=100; G.arcs[23][24]=20; G.arcs[24][31]=100; G.arcs[25][26]=50; G.arcs[26][27]=350;  
  G.arcs[27][28]=10; G.arcs[29][31]=70;  
  for(j=0;j<G.vexnum;j++)

for(i=0;i<G.vexnum;i++)
G.arcs[j][i]=G.arcs[i][j];
}
}
void Printmatix(MGraph G)

int i,j,count=0;
printf("图的邻接矩阵:\n");
for(i=0;i<G.vexnum;i++) /*以邻接矩阵形式输出图*/

for(j=0;j<G.vexnum;j++)
printf("%5d",G.arcs[i][j]);
  }
}

void main()

  system("mode con: cols=160 lines=200"); 
int b,f;
  AdjType N[MAXVEX][MAXVEX]; /*关系矩阵D,存放每对顶点间最短路径长度*/
  int q[MAXVEX][MAXVEX][MAXVEX]; /*p数组存放最短路径*/
  AdjType D[MAXVEX]; /*D(v)为v0到v的路径长度*/
  int p[MAXVEX][MAXVEX]; /*p(v)记录v0到v的最短路径,若p[v][w]为TRUE,则w是从v0到v当前求得最短路径上的顶点*/
  MGraph G;
  int visited[MAXVEX];  
  chushihua(G);
  printf("----------------欢迎来到校园导游系统:-----------------\n");
printf("请输入您的选择:\n");
printf("1景点介绍 2查看旅游路线\n");
printf("3查询景点间最短路径 4景点信息查询\n");
printf("5更改图信息 6查询景点间可行路径\n");
printf("7打印邻接矩阵 8退出系统\n");
do
{
printf("\n请输入一个选择,按enter键结束\n");
scanf("%d",&f);
switch(f)
{
case 7: Printmatix(G); break;
case 8: exit(0);/*退出系统*/
}
}while(f!=8);
}


[解决办法]
问问题之前,先把问题讲明白。


在 黑客 的世界里,你所提技术问题的解答很大程度上取决于你提问的方式与解决此问题的难度,本文将教你如何提问才更有可能得到满意的答复。
开源程序的应用已经很广,你通常可以从其他更有经验的用户而不是黑客那里得到解答。这是好事,他们一般对新手常有的毛病更容忍一点。然尔,使用我们推荐的方法,象对待黑客那样对待这些有经验的用户,通常能最有效地得到问题的解答。
第一件需要明白的事是黑客喜欢难题和激发思考的好问题。假如不是这样,我们也不会写本文了。如果你能提出一个有趣的问题让我们咀嚼玩味,我们会感激你。好问题是种激励与礼物,帮助我们发展认知,揭示没有注意或想到的问题。在黑客中,“好问题!” 是非常热烈而真挚的赞许。


此外,黑客还有遇到简单问题就表现出敌视或傲慢的名声。有时,我们看起来还对新手和愚蠢的家伙有条件反射式的无礼,但事情并不真是这样。
我们只是毫无歉意地敌视那些提问前不愿思考、不做自己家庭作业的人。这种人就象时间无底洞──他们只知道索取,不愿意付出,他们浪费了时间,这些时间本可用于其它更有趣的问题或更值得回答的人。我们将这种人叫做 “失败者(loser)” (由于历史原因,我们有时将“loser”拼写为“lusers” 。)
我们意识到许多人只是想使用我们写的软件,他们对学习技术细节没有兴趣。对大多数人而言,计算机只是种工具,是种达到目的的手段而已。他们有自己的生活并且有更要紧的事要做,我们承认这点,也从不指望每个人都对这些让我们着迷的技术问题感兴趣。不过,我们回答问题的风格是为了适应那些真正对此有兴趣并愿意主动参与解决问题的人,这一点不会变,也不该变。如果连这都变了,我们就会在自己能做得最好的事情上不再那么犀利。
我们(大多数)是自愿者, 从自己繁忙的生活中抽时间来回答问题,有时会力不从心。因此,我们会毫不留情地滤除问题,特别是那些看起来象是失败者提的,以便更有效地把回答问题的时间留给那些胜利者。
如果你认为这种态度令人反感、以施惠者自居或傲慢自大,请检查你的假设,我们并未要求你屈服──事实上,假如你做了该做的努力,我们中的大多数将非常乐意平等地与你交流,并欢迎你接纳我们的文化。试图去帮助那些不愿自救的人对我们简直没有效率。不懂没有关系,但愚蠢地做事不行。
所以,你不必在技术上很在行才能吸引我们的注意,但你必须表现出能引导你在行的姿态──机 敏、有想法、善于观察、乐于主动参与问题的解决。如果你做不到这些使你与众不同的事情,我们建议你付钱跟别人签商业服务合同,而不是要求黑客无偿帮助。
如果你决定向我们求助,你不会想成为一名失败者,你也不想被看成一个失败者。得到快速有效回答的最好方法是使提问者看起来象个聪明、自信和有想法的人,并且暗示只是碰巧在某一特别问题上需要帮助。

[解决办法]
To set a breakpoint when a variable changes value 

From the Edit menu, click Breakpoints.
Click the Data tab of the Breakpoints dialog box.
In the Expression text box, type the name of the variable.
Click OK to set the breakpoint. 

热点排行