从0开始学C,纯小白一个
代码如下,编译后,有时候能排序,有时候又不能排序,这是怎么回事?
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAXSIZE 255
/*冒泡排序*/
void BubbleSort(int a[],int n){
int i,j,temp;
int flag=0;
for(i=1;i<n;i++){
for(j=1;j<n-i+1;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=1;
}
if(flag==0) return;
}
}
}
int main(){
srand(time(NULL)); //生成10个100以内的数
int length=10;
int i,J;
int k=1;
int a[MAXSIZE];
for(i=1;i<=length;i++){
a[i]=rand()%101;
}
printf("排序前:");
for (i=1;i<=length;i++){
printf("%d\t",a[i]);
}
putchar('\n');
printf("排序后:");
BubbleSort(a,length); //冒泡排序
for (i=1;i<=length;i++){
printf("%d\t",a[i]);
}
putchar('\n');
return 0;
}