结构体交换的时候为什么失败,不明白哪里错了

#include
using namespace std;
typedef struct student
{
int a;
}STU;
int main()
{
STU stu[10];
STU swap;
int i,j;
for(i=0;i {
cin>>stu[i].a;
}
for(i=0;i<10;i++)
{
cout<<stu[i].a<<"\t";
}
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(stu[i].a < stu[j].a)
swap=stu[i];
stu[i]=stu[j];
stu[j]=swap;
}

}
for(i=0;i<10;i++)
{
    cout<<stu[i].a<<"\t";
}
return 0;

}

if(stu[i].a < stu[j].a)这个后面要加上大括号,满足if的时候只会执行一句swap=stu[i];
而后面的两句每次都会执行

 #include <iostream>
using namespace std;
typedef struct student
{
    int a;
}STU;
int main()
{
    STU stu[10];
    STU swap;
    int i,j;
    for(i=0;i <10; i++){
        cin>>stu[i].a; 
    }
    for(i=0;i<10;i++)
    {
        cout<<stu[i].a<<"\t";
    }
    for(i=0;i<9;i++)
    {
        for(j=i+1;j<10;j++)
        {
            if(stu[i].a < stu[j].a)
            {
                swap=stu[i];
                stu[i]=stu[j];
                stu[j]=swap;
            }

        }
    }
    for(i=0;i<10;i++)
    {
        cout<<stu[i].a<<"\t";
    }
    return 0;
}

晚上看的时候无意间看到了,哭笑不得,不过还是多谢了。