
#include <stdio.h>
#include <stdlib.h>
void printarray(int *array,int len);
void Range(int *p,int len);
int main(){
int *p,NUM;
printf("请输入数组大小:\n");
scanf("%d",&NUM);
if((p=(int*)malloc(NUM*sizeof(int)))==NULL){
printf("NO!");
exit -1;
}
int i;
for(i=0;i<NUM;i++){
scanf("%d",p+i);
}
printf("原数组:\n");
printarray(p,NUM);
printf("冒泡排序后的数组:\n");
Range(p,NUM);
printarray(p,NUM);
free(p);
return 0;
}
void printarray(int *array,int len){
int i;
for(i=0;i<len;i++){
printf("%d ",*(array+i));
}
printf("\n");
}
void Range(int *p,int len){
int i,j,temp,flag;
for(i=0;i<len-1;i++){
flag=0;
for(j=0;j<len-1-i;j++){
if(*(p+j)>*(p+j+1)){
flag=1;
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
if(!flag) break;
printf("第%d轮排序结果",i+1);
printarray(p,len);
}
}