可以解释一下这个小程序是如何工作的吗

可以解释一下这个小程序是怎么工作的吗?
#include "stdio.h "
void   main()
{
  int   a[10],i,j,k,temp,min;
  printf( "Enter   10   numbers:\n ");
  for(i=0;i <10;i++)
      scanf( "%d ",&a[i]);
  for(i=0;i <9;i++)
        {
          k=i+1;
          min=i;
          for(j=k;j <10;j++)
                if(a[j] <a[min])
                min=j;
          temp=a[i];
          a[i]=a[min];
          a[min]=temp;
          }
  printf( "the   sorted   numbers:\n ");
  for(i=0;i <10;i++)
      printf( "%d ",a[i]);
    }


------解决方案--------------------
#include "stdio.h "

void main()
{
int a[10],i,j,k,temp,min;

printf( "Enter 10 numbers:\n ");

for(i=0;i <10;i++)
{
scanf( "%d ",&a[i]);
}

for(i=0;i <10;i++)
{
k=i+1;
min=i;
for(j=k;j <10;j++)
{
if(a[j] <a[min])
{
min=j;
}
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}

printf( "the sorted numbers:\n ");
for(i=0;i <10;i++)
{
printf( "%6d ",a[i]);
}

}

我把你的程序重新跑了一下,修改了一些东东。
------解决方案--------------------
printf( "Enter 10 numbers:\n ");
for(i=0;i <10;i++)
scanf( "%d ",&a[i]);//这里是输入10个数字


for(i=0;i <10;i++) //这里开始排序比较 for(i=0;i <10;i++)
{ {

k=i+1;
min=i; //把i的值依次给min
其实这里也可以不这么写
for(j=k;j <10;j++) for(j=i+1;j <10;j++)
{ {
if(a[j] <a[min]) if(a[j] <a[i])
{ {
min=j; temp=a[j];
} a[j]=a[i];
temp=a[i]; a[i]=temp;
a[i]=a[min];
a[min]=temp;
} }
} }

printf( "the sorted numbers:\n "); //这里就是打印你排好序的结果了
for(i=0;i <10;i++)
printf( "%d ",a[i]);
}



------解决方案--------------------
我这菜鸟 都能看懂 相信LZ 一定行
呵呵