元素列中的元素比较

时间:2013-11-14 01:55:57

标签: c

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

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

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++;
 }
}

2 个答案:

答案 0 :(得分: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++;
}

答案 1 :(得分:0)

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