在这个for循环中,只要有一次不满足,这个for循环将break掉
while(p->score>=90&&i<5)
count++
//若有一次不满足的话,那么整个循环将break;
—————————————————————————
改
——————————————————————
************************************************
#include<string.h>
#include<stdio.h>
void quickSort(int a[],int low,int high)
{
int i=low,j=high,temp=a[i]; //temp是个哨兵,每次和她进行比较
if(i>j) return ; // 终极bug,递归结束的钟终点,不然没结果啊
while(i<j)
{
while(i<j&&a[j]>=temp) j--; //是等号,相等的不用比较,加快速度
if(i<j) a[i++]=a[j]; //注意;不是i++,j--或i j--
while(i<j&&a[i]<=temp) i++;
if(i<j) a[j--]=a[i]; //i这个位置要被替代的
}
a[i]=temp;
quickSort(a,low,i-1); //low不是0 high不是9
quickSort(a,j+1,high);
}
/*
void quicksort(int a[],int left,int right)
{ int i=left;int j=right;int temp;
if(i>j) return;//必须写而且是i大于j,不然函数没有输出结果
temp=a[i];//6行代码实现那句话,大话是有等,没等号测试也正确
while(i<j)//一共有5个i<j
{ //经典4行代码,
while(a[j]>=temp&&j>i) j--;
if(j>i) a[i++]=a[j];
while(a[i]<=temp&&j>i) i++;
if(j>i) a[j--]=a[i];
}
a[i]=temp;
quicksort(a,left,i-1);
quicksort(a,i+1,right);
} */
void main()
{ int k;//黑盒测试,测了很多遍正确
int a[]={-90,-90,899999990,80,1,1,1,-99,9909999,-99}; //>= <=即使没有等号也可以成立
quickSort(a,0,9);
for(k=0;k<=9;k++)
printf("%d
",a[k]);
}