将数据从Array传递到另一个Array时遇到了困难

时间:2015-01-12 21:17:03

标签: c arrays sorting

所以我在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);
}

但是在我的代码段中一定有问题,因为程序停在那里。所以目前我无法弄清楚我忘记了什么,或做错了什么。所以我希望也许有人,在我发疯之前可以给我一个提示。

0 个答案:

没有答案