C语言的排序问题?过程应该没错结果输出?

C语言的排序问题?过程应该没错结果输出?

问题描述:

 

两个for循环写错了

for(int i=0;i<5-1;i++)

for(int k=0;k<5-k-1;k++)

 

代码如下,如有帮助,请采纳一下,谢谢:

#include <stdio.h>

int main()
{
	int arr[5] = {2,1,3,4,5};
	for (int i = 0; i < 5-1;i++)
	{
		int l;
		for (int k = 0; k < 5-i-1;k++)
		{
			if (arr[k] > arr[k+1])
			{
				l = arr[k];
				arr[k] = arr[k+1];
				arr[k+1] = l;
			}
		}
	}
	printf("排序后:\n");
	for(int i = 0; i < 5; i++)
		printf("%d ",arr[i]);


	getchar();
	getchar();
	return 0;
}

template<class Elem>
void bubsort(Elem A[],int n)
{
    for(int i = 0;i < n - 1;i++)
        for(int j = n - 1;j > i;j--)
            if(A[j] < A[j-1])
                swap(A,j,j-1);
}

仅供参考,冒泡排序,望采纳,不懂的可以关注私信我。