Type * find(Type * ID,int n){ /* n 帖子总数, ID 用户ID列表 result 储存3个当前遍历到的不同ID nTimes 储存对应ID已遍历到的个数被抵消后的值 */ Type result[] = {NULL,NULL,NULL}; int i; int nTimes[] = {0,0,0}; for(i=0;i<n;i++){ if(nTimes[0] == 0 && ID[i] != result[1] && ID[i] != result[2]){ nTimes[0] = 1; result[0] = ID[i]; } else if (nTimes[1] == 0 && ID[i] != result[0] && ID[i] != result[2]){ nTimes[1] = 1; result[1] = ID[i]; } else if (nTimes[2] == 0 && ID[i] != result[0] && ID[i] != result[1]){ nTimes[2] = 1; result[2] = ID[i]; } else if(ID[i] != result[0] && ID[i] != result[1] && ID[i] != result[2] ){ nTimes[0] -= 1; nTimes[1] -= 1; nTimes[2] -= 1; }else if(ID[i] == result[0]){ nTimes[0] += 1; }else if(ID[i] == result[1]){ nTimes[1] += 1; }else if(ID[i] == result[2]){ nTimes[2] += 1; } } return result; }