处理检查列元素的函数,并计算由特定列中的非匹配元素组成的列。
这是函数中假设问题的部分:
(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++;
}
}
答案 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 ++) 避免在最后一次迭代中将列与自身进行比较。