关于小到大的排序
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();
}
这个没问题