求C++大神解释这个函数的语句!

请大神麻烦解释一下这个函数每条语句的意思,谢谢了!voidsort(studentstu[],intlen){studentm;inti,j,k;for(i=0;i<le... 请大神麻烦解释一下这个函数每条语句的意思,谢谢了!
void sort(student stu[],int len)
{
student m;
int i,j,k;
for(i=0;i<len-1;i++)
{
k=i;
for(j=i+1;j<len;j++)
if(strcmp(stu[j].num,stu[k].num)>0)
k=j;
if(i!=k)
{m=stu[i];stu[i]=stu[k];stu[k]=m;}
}
}
展开
 我来答
IT孤鹜
2014-06-18 · TA获得超过4198个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3573万
展开全部
void sort(student stu[],int len)//这是一个选择排序算法

    student m;
    int i,j,k;
    for(i=0;i<len-1;i++)
    {
        k=i; //k是指向num最大值得下标
        for(j=i+1;j<len;j++)
            if(strcmp(stu[j].num,stu[k].num)>0)
                k=j; //这里总是保存最大的下标
        if(i!=k) //如果下标改变了就交换
        {m=stu[i];stu[i]=stu[k];stu[k]=m;}
    }
}
李岳铮
2014-06-18 · TA获得超过107个赞
知道小有建树答主
回答量:302
采纳率:0%
帮助的人:215万
展开全部
冒泡法排序,从大到小排序
定义变量不解释
两重循环,第一重循环,从第一个数到倒数第二个数,(因为剩下最后一个数最小的话,就不用排了)
然后将这个数和之后的每一个数比较,如果有一个数比这个数大,就用这个数替代原来的数,继续做比较。
结果每次是得到剩下的数中最大的数,
这样就完成了排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zq757797769
2014-06-18 · TA获得超过201个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:161万
展开全部
void sort(student stu[],int len) //子函数有一个int型参数和一个student型结构体参数
{
student m; 定义一个student结构体m
int i,j,k; 定义三个int型 i,j,k
for(i=0;i<len-1;i++) for循环 i 从0开始一直循环到i=len-2
{
k=i; 将i数值赋予k
for(j=i+1;j<len;j++) for循环同上
if(strcmp(stu[j].num,stu[k].num)>0) if判断语句 如果stu[j].num大于stu[k].num则继续执行下面一句语句,否则跳过下面一句语句
k=j;
if(i!=k) if判断i如果不等于k则执行下面语句,否则不执行
{m=stu[i];stu[i]=stu[k];stu[k]=m;} 这句就是stu[i]的值和stu[k]的值交换
}
}
我有说的不明白的继续追问吧
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式