为啥得不到正确答案啊,哪里出问题了

#include<stdio.h>
int main()
{
int a[10],i,x,j;
for(i=0;i<10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(j=0;j<9;j++)
{
for(i=0;i<9-j;i++)
{
if(a[i]>a[i+1]);
{
x=a[i];
a[i]=a[i+1];
a[i+1]=x;
}
}
printf("%d\t",a[i+1]);
}
return 0;
}


#include<stdio.h>
int main()
{
    int a[10], i, x, j;
    for (i = 0; i < 10; i++)
    {
        printf("a[%d]=", i);
        scanf_s("%d", &a[i]);
    }
    for (j = 0; j < 9; j++)
    {
        for (i = 0; i < 9 - j; i++)
        {
            if (a[i] > a[i + 1]);
            {
                x = a[i];
                a[i] = a[i + 1];
                a[i + 1] = x;
            }
        }
    }
    for (i = 0; i < 10; i++)
        printf("%d\t", a[i]);
    return 0;
}

输入10个数比大小,从大到小哈

if(a[i]>a[i+1]);
后面的分号去掉,如果是从大到小的话,应该是 if(a[i]<a[i+1])吧
还有,输出的时候要单独放在一个for循环里,不然最后那个输出a[i+1]是什么意思啊

从大到小的话应该是a[i]<a[i+1],还有就是输出需要弄个循环for也行while也行,不然你这个就相当于输出一个值

#include<stdio.h>
int main()
{
int a[10],i,x,j;
for(i=0;i<10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(j=0;j<10;j++)
{
for(i=0;i<9-j;i++)
{
if(a[i]>a[i+1])
{
x=a[i];
a[i]=a[i+1];
a[i+1]=x;
}
}
printf("%d\t",a[i]);
}
return 0;
}