0

处理一个检查列元素的函数,并计算由特定列中不匹配元素组成的列。

这是假设问题所在的函数部分:

j- 当前列,c- totalRows,i- 当前行,r- totalRows,k- 偏移量)

for (j = 0; j < c; j++)
{
  fail=0;
  for (i=0;i i < r; i++)
      {
      for(k=i+1; i < r; i++)
         {
         if(array[i][j]==array[k][j])
            {
            fail=1;
            break;
            }
          else
            {
            fail=0;
            }
         }
        if(fail==1)
         {
         break;
         }
    }
if(fail==0)
 {
 column++;
 }
}
4

2 回答 2

0

你说程序运行正确但结果错误。我认为错误出在这一行: for (i=0;ii < r; i++) 它必须是这样的: for (i=0;ii < r-1; i++) 以避免将列与自身进行比较最后一次迭代。

于 2013-11-14T03:01:58.477 回答
0

k您在循环中使用了错误的变量:

  for(k=i+1; i < r; i++)

你应该比较和递增k,而不是i

代码也可以更整洁一些:

for( j = 0; j < c; j++ )
{
    fail = 0;
    for( i = 0; i < r && !fail; i++ )
    {
        for( k = i+1; k < r; k++ )
        {
           if( array[i][j] == array[k][j] )
           {
              fail=1;
              break;
           }
        }
    }

    if( !fail ) column++;
}
于 2013-11-14T02:18:26.020 回答