Higuys,我正在研究一个小程序,其部分功能是找到重复数组。
说我在mem[100][4]
中存储了一些数字
并且temp[4]
中有另外一组4个数字等待存储。
程序检查mem[100][4]
中是否有任何相同的集合,
如果不是,则temp[4]
集将存储为mem[numR][4]
。
numR表示mem数组中的总条目数,也是我程序的主要结果。
但输出为0或包含重复。有人知道我的代码有什么问题吗?
void Cord::checkDup(){
int j, k, z=0;
int swap = 0;
temp[0] = i;
temp[1] = x;
temp[2] = y;
temp[3] = c;
//Ascending sort
/* code not shown here*/
//Check for duplicate
for (j = 0; j < (numR-1);j++){
if(
(mem[j][0] == temp[0]) &&
(mem[j][1] == temp[1]) &&
(mem[j][2] == temp[2]) &&
(mem[j][3] == temp[3])
){
numR--; /* the reason behind this is because I first assumed it is a valid entry and incremented numR by 1 before the checking*/
return;
}else{
continue;
}
}
mem[numR - 1][0] = temp[0];
mem[numR - 1][1] = temp[1];
mem[numR - 1][2] = temp[2];
mem[numR - 1][3] = temp[3];
}