C语言冒泡排序,最大位置错误,其它正常

为什么其它排列正常的,9反而跑最下面了?

 

冒泡排序的循环是:n是数字的大小,在这个例子中就是10

for(i = 0;i<n-1;i++) //外循环

    for(j =0;j<n-1-i;j++)//内循环

代码如下:

#include <stdio.h>

void main()
{
	int a[10];
	int i,j,t;
	printf("请输入10个数:\n");
	for (i =0;i<10;i++)
	{
		scanf("%d",&a[i]);
	}

	for (i=0;i<9;i++)
	{
		for(j = 0;j<9-i;j++)
		{
			if(a[j] > a[j+i])
			{
				t = a[j];
				a[j] = a[j+1];
				a[j+1] = t;
			}
		}
	}
	printf("有小到大排列是:");
	for(i = 0;i<10;i++)
		printf("%d\n",a[i]);
	return ;

}

 

for嵌套的for用的是j作为循环次数,但是内部没有用到就。而且输出也不对,不是只有9bi dui

冒泡排序那段这么写:

for(i=0;i<10-1;i++)
{
    for(j=0;j<10-i-1;j++)
    {
        if(a[j]>a[j+1])
        {
          t=a[j];a[j]=a[j+1];a[j+1]=t;
        }
    }
}