#include<stdio.h>
void insertion_sort(int arr[]);
int main()
{
int a[8]={7,6,9,3,1,5,2,4};
int i;
void insertion_sort(a);
for(i=0;i<=7;i++)
{
printf("%d ",a[i]);
}
return 0;
}
void insertion_sort(int arr[])
{ int i,j,key;
for (i=1;i<8;i++)
{
key = arr[i];
j=i-1;
while((j>=0) && (arr[j]>key))
{
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
}
}
原因是你根本没有调用你写的插入排序函数, void insertion_sort(a); 这个叫声明不叫调用, 调用不能有前面的返回值void, 把这个去掉, 如果你下面的代码没错就可以正常排序了
(有用请采纳)