C编程和数组,矩阵操作

时间:2015-11-25 16:54:15

标签: c arrays matrix

我正在尝试在techgig.com上进行在线测试。 问题是找到从矩阵左上角到右下角的最小路径。 我想用C语言编写代码。 最小成本函数已经给出,我不允许更改它。

char* minumumcost(char* input1[],int input2)

其中input1是矩阵,input2是矩阵中的行数。

然而由于我对C的了解有限,我只知道在声明为二维数组时如何操作矩阵。

对于二维数组,我打算进行以下操作。

这里的成本矩阵是成本[10] [10] \ while(point1!= n&& point2!= n)       {

 if(cost[a][j+1]<cost[a+1][j] && cost[a][j+1]<cost[a+1][j+1])
{  
     min=cost[a][j+1];
     s[k]='R';
     k++;
     j++;
     point1=a;
     point2=j;
}
else if(cost[a+1][j]<cost[a+1][j+1] && cost[a+1][j]<cost[a][j+1])
{   

   min=cost[a+1][j];
   s[k]='B';
   k++;
   a++;
   point1=a;
   point2=j;
} 
else  if(cost[a+1][j+1]<cost[a+1][j] && cost[a+1][j+1]<cost[a][j+1])
    { 
        min=cost[a+1][j];
        s[k]='D'; 
         a++;
         j++;  
         k++;
          point1=a;
   point2=j;
    } 
            }

\ 一个例子表明矩阵的输入是以这种形式给出的。 {5#2#3#2,8#5#5#3,1#4#7#6,3#3#6#5},4 其中4是行数,剩下的是行的元素。

问题是如何使用input1 []执行此操作? 请尽快帮帮我 测试有时间限制。

1 个答案:

答案 0 :(得分:1)

该函数接受char*的数组。请注意,在C中,大多数情况下可以互换使用数组和指针。

如果您声明了像char* p;这样的指针,则可以像数组一样使用它:p[5]。因此,在您的情况下,char* input[]char的数组数组完全相同:input[2][5]将从数组中获取元素#2(产生char*!)和来自那个元素#5。 或者,更明确地说,你也可以写

char* row = input[2];
char element = row[5];

然而,矩阵的每一行将有多少元素无法从你发布的内容中被告知。它是一个方阵,是表示为\0终止字符串的行吗?您必须检查该信息的测试问题。