所以我在C代码中遇到了Arrays的问题。我认为问题并不严重,但在我的代码工作超过48小时后,我才能真正看透。 所以这就是我的问题:我得到了一个名为path的函数,它找到了迷宫中两个给定点之间的最短路径。该函数返回一个int变量,我将其命名为stepcount。在这里,我存储了从一个点到另一个点所需的步骤数。该信息存储在名为" comb"的数组中。这个数组是二维的。
agents = atoi( argv[4] );
int k=0;
unsigned int num = agents*agents;
unsigned int comb[num][3];//Represents steps form one agent to the target ->
//[][1] = Startpoint; [][2] = Endpoint; [][3] = number of steps;
unsigned int distance[agents][3];
for(int i=0; i<agents; i++)
{
for(int j=0; j<agents; j++)
{
stepcount=path(nodeAgents[i], nodeTargets[j]);
comb[k][0]=i;
comb[k][1]=j;
comb[k][2]=stepcount;
k++;
}
}
for(int i=0; i<num; i++)
{
printf("%d. Steps from Agent %d to Target needed %d: %d\n",i, comb[i][0],comb[i][1],comb[i][2]);
}
因此,我获得了从代理的位置到迷宫中所有目标所需的步骤数。现在我想找到距离代理最近的目标。因此我编写了这段代码:
for(int i=0; i<num; i+agents)
{
for(int j=k; j<agents; j++)
{
if(comb[j+i][2]<comb[j+i+1][2])
{
distance[j][0] = i;
distance[j][1] = j;
distance[j][2] = comb[j+i][2];
}
}
}
for(int i=0; i<agents; i++)
{
int j = distance[i][0];
int x = distance[i][1];
int y = distance[i][2];
printf("%d. Nearest Target to Agent %d is Target %d. The number of steps needed is %d\n", i, j, x, y);
}
但是在我的代码段中一定有问题,因为程序停在那里。所以目前我无法弄清楚我忘记了什么,或做错了什么。所以我希望也许有人,在我发疯之前可以给我一个提示。