粗心的后果!c语言选择排序

#include <stdio.h>
void choiceSort(int array[], int len)
{
	int i = 0,j = 0, tem = 0;
	for(i = 0; i < len-1; i++)
    	{
		for(j = i+1;j < len; j++)
		{
			if(array[i] > array[j]);//从小到大
			{
			        tem = array[i];
			        array[i] = array[j];
				array[j] = tem;
			}
		}
	}
}
int main()
{
	int arr[10] = {5, 100, 66, 4, 3, 77, 99, 101};
	arr[9] = 7;
	int len = sizeof(arr)/sizeof(arr[0]);
	choiceSort(arr, len);
	int i = 0;
	for(i = 0; i < len; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
	return 0;
}

想复习一下的,自己敲了个选择排序的代码,运行结果,一脸懵,怎么出来个倒序

7 0 101 99 77 3 4 66 100 5
找了半天发现了犯了个最低级的错误,

if(array[i] > array[j]);//从小到大
if语句后面加;了,导致判断后执行空语句,然后在执行交换的语句。就出了我数组倒序的结果。

猜你喜欢

转载自blog.csdn.net/lyw13522476337/article/details/80801668