fairallen 2016-04-26 06:55 采纳率: 0%
浏览 1344

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

#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条回答 默认 最新

  • 小灸舞 2016-04-26 07: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;
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图