//从扑克牌中随机抽取5张,判断是不是顺子,2-10为数字本身,A为1,J,Q,K为11,12,13 //大小王可以为任意数字 int compare(const void *arg1, const void *arg2) { return *(int*)arg1 - *(int*)arg2; } bool IsContinuous(int *numbers, int length) { if (numbers == NULL || length < 0) return false; qsort(numbers, length, sizeof(int), compare); int numberOfZero = 0; int gap = 0; for (int i = 0; i < length; i++) { if (numbers[i] == 0) numberOfZero++; } int small = numberOfZero; int big = small + 1; while (big < length) { if (numbers[small] == numbers[big]) return false; gap = numbers[big] - numbers[small] - 1 + gap; small = big; ++big; } return((gap > numberOfZero)? false : true); }