冒泡法数组排序 两个差不多,但一个对一个不对

#include<stdio.h>
#define N 6
int main()
{ int a[N],i,j,k,temp;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(j=0;j<N-1;j++)
for(k=0;k<N-j-1;k++)
if(a[k]>a[k+1])
{temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;}
for(i=0;i<N;i++)
printf("%d\n",a[i]);
return 0;
}
第一个是正确的
#include<stdio.h>
#define N 10
int main()
{ int a[N],i,j,temp,k;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(j=0;j<N-1;j++)
{for(k=0;k<N-j-1;k++)
if(a[k]<a[k+1])
{temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;}}
for(i=0,i<N;i++;)
printf("%d",a[i]);
return 0;
}
不知道第二个究竟哪里错了,一直得不到结果

代码有问题,for循环格式错了

楼主讲了,是第二个有问题,那第一个就不说了
先来讲讲第二个有错没,有错,什么错?逻辑错误!for循环的错误,最后一个输出显示的错误,for循环的初始条件语句你写了两个,判断语句你写的i++由于初始条件为i=0所以判断条件为假,也就不显示排序,i++后面你写了个分号所以编译才不会出错,改一下就好了