2 fairallen fairallen 于 2016.04.26 14:55 提问

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

#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;

}

2个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.26 15:31

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;
}

fairallen
fairallen   2016.04.27 09:32

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!