首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于小到大的排序,该如何解决

2012-03-08 
关于小到大的排序 main(){intm[100],k,n,i,min_k,min,xprintf( 请输入你要排序的数的总个数:\n )scanf

关于小到大的排序

main()
{         int   m[100],k,n,i,min_k,min,x;
        printf( "请输入你要排序的数的总个数:\n ");
        scanf( "%d ",&n);
        printf( "请输入你要排序的数:“\n ");
        for(i=0;i <n;i++)
          scanf( "%d ",&m[i]);
        for(k=0;k <n-1;k++)
        {
            min=m[k];
            min_k=k;
            for(i=k;i <n;i++)
              if(m[i] <m[k])
                  {
                      min=m[i];
                      min_k=i;
                                          }
              x=m[min_k];
              m[min_k]=m[k];
              m[k]=x;
              }
          for(i=0;i <n;i++)
              printf( "%d   ",m[i]);
        getch();
}
  这个代码运行后没,如果输入8个数,8   54   2   6   1   4   2   3  
得到的排序是3   8   1   2   2   4   6   54


是哪里有问题啊,猴急啊!!!

[解决办法]
#include <stdio.h>

int main()
{
int m[100],k,n,i,min,min_k;
printf( "input the total number(less than 100): ");
scanf( "%d ",&n);
printf( "\ninput the number list: ");
for(i=0;i <n;i++)
scanf( "%d ",&m[i]);
for (k=0; k <n-1; k++)
{
min = m[k];
for (i=k+1; i <n; i++)
if (min > m[i])
{
min = m[i];
min_k = i;
}
m[min_k] = m[k];
m[k] = min;
}
for(i=0;i <n;i++)
printf( "%d ",m[i]);
getch();
}

这个没问题

热点排行