报错且结果出错
#include<stdio.h>
void bubble_sort(int arr[],int sz)
{
int i = 0;
int tmp = 0;
for (i = 0;i < sz-1;i++)
{
int j = 0;
for (j = 0;j <sz-1-i ;j++);
{
if (arr[j] > arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main()
{
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
int a = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr,sz);
for (a = 0;a < sz;a++)
{
printf("%d ", arr[a]);
}
return 0;
}
打印出来的值:“9 -858993460 8 7 6 5 4 3 2 1”
在bubble_sort函数内,第一次进入j就从0变为了9.
想达到对数组进行升序排序的结果
for (j = 0;j <sz-1-i ;j++);
删除后面的分号
bubble_sort函数里面的for(j=0;j<sz-1-i;j++)后面多了个分号