int qusort(int* s,int start,int end) //自定义函数 qusort()
{
int i,j; //定义变量为基本整型
i= start; //将每组首个元素赋给i
j = end; //将每组末尾元素赋给j
int k=s[start]; //设置基准值
while(i < j)
{
while(i < j && k < s[j]) // 从右向左找第一个小于k的数
j--; //位置左移
if(i < j)
{
s[i] = s[j]; //将s[j]放到s[i]的位置上
i++; //位置右移
}
while(i < j && s[i] <= k) // 从左向右找第一个大于等于k的数
i++; //位置左移
if(i < j)
{
s[j] = s[i]; //将大于基准值的s[j]放到s[i]位置
j--; //位置左移
}
}
s[i] = k; //将基准值放入指定位置
if (start < i)
qusort(s,start,j-1); //对分割出的部分递归调用qusort()函数
if (i < end)
qusort(s,j+1,end);
return 0;
}
int expectNumber(int* scores, int scoresSize){
qusort(scores,0,scoresSize-1);
int count = scoresSize;
for (int i=0; i<scoresSize-1; i++)
{
if (scores[i] == scores[i+1])
count--;
}
return count;
}