关于冒泡排序的算法原理不再赘述,这里包含用户自定义函数以及指针传递的相关内容。
#include <stdio.h>
void sort(int *p,int len){
int i,j,t;
for (i=0; i<len-1; i++) {
for (j=0; j<len-i-1; j++) {
if (p[j]>p[j+1]) {
t=p[j+1];
p[j+1]=p[j];
p[j]=t;
}
}
}
}
void output(int *p,len){
int i;
for (i=0; i<len; i++) {
printf("%d ",*(p+i));
}
}
int main(void) {
int i;
intput();
int a[10]={63,148,12,5,6,91,-12,-54,87,487};
sort(a,10);
output(a,10);
return 0;
}
注意:数组名实际是一个指针变量,它包含数组内第一个元素的地址,所以在传递给用户自定义函数sort()时,需要注意形参的类型为int *类型,才可以访问到main()函数内的数组值。
确定一个数组只需要知道数组名(数组的第一个元素地址以)及数组中的元素个数