用选择排序法对数组中的10个元素进行排序-按从小到大顺序

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a[10]={4,12,13,4,3,42,33,1,43,44}; //定义一个有10个元素的数组
int i,j,min,pos_min;
int t;

min=a[0];pos_min=0;  //假设数组中第一个元素最小

for(j=0;j<9;j++)     //外循环,比较多少轮
{
    _____①______;        //第 j 轮开始时,假设最前面的数a[j]最小
    pos_min=___②___;
    for(________③_________) //内循环,从第j+1个开始,依次进行比较
    {
        if(_______④________)    //如果发现更小的数,则对min及pos_min更新
        {
            min=a[i];
            _______⑤________;
        }
     }
     //循环后,最小的数所在的位置为pos_min,交换a[j]与a[pos_min]的值,使得a[j]成为最小的数
     t=a[j];a[j]=a[pos_min];a[pos_min]=t;
}

for(i=0;i<10;i++)       //输出数组中的排序后的10个元素
    printf("%2d ",a[i]);

return 0;

}

供参考:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a[10] = { 4,12,13,4,3,42,33,1,43,44 }; //定义一个有10个元素的数组
    int i, j, min, pos_min;
    int t;

    min = a[0]; pos_min = 0;  //假设数组中第一个元素最小

    for (j = 0; j < 9; j++)     //外循环,比较多少轮
    {
        min = a[j];  //_____①______;        //第 j 轮开始时,假设最前面的数a[j]最小
        pos_min = j; //___②___;
        for (i = j + 1; i < 10;i++) //(________③_________) //内循环,从第j+1个开始,依次进行比较
        {
            if (min < a[i])   //(_______④________)    //如果发现更小的数,则对min及pos_min更新
            {
                min = a[i];
                pos_min = i;  //_______⑤________;
            }
        }
        //循环后,最小的数所在的位置为pos_min,交换a[j]与a[pos_min]的值,使得a[j]成为最小的数
        t = a[j]; a[j] = a[pos_min]; a[pos_min] = t;
    }

    for (i = 0; i < 10; i++)       //输出数组中的排序后的10个元素
        printf("%2d ", a[i]);

    return 0;
}