人之所以痛苦,那是因为你在成长。--------magic_guo
熟练掌握选择排序,了解选择排序与冒泡排序的区别。
思路:
在主函数中定义长度为10的数组,定义指针变量指向数组的首地址,将数组首地址发给定义的排序的函数进行排序。
选择排序的示意图:
代码:
# include <stdio.h>
int main(void)
{
void sort(int * p, int n); //sort函数的的声明
int array[10], * p, i;
p = array; //将指针变量p指向array数组
printf("Please enter ten integer numbers: \n");
for (i=0; i<10; i++)
scanf("%d", &array[i]);
printf("original array:\n");
for (i=0; i<10; i++)
printf("%d ", array[i]);
printf("\n");
sort(p, 10); //调用sort函数,将指针变量和数组长度作为实参发送给函数
printf("sorted array:\n");
for (i=0; i<10; i++)
printf("%d ", array[i]);
printf("\n");
return 0;
}
void sort(int * p, int n)
{
int i, j, temp;
for (i=0; i<n; i++)
for (j=i+1; j<n; j++)
if (*(p+i) < *(p+j))
{
temp = *(p+i);
*(p+i) = *(p+j);
*(p+j) = temp;
}
}