编写程序,用选择法对10个整数按从小到大顺序排序

如题所述

#include<stdio.h>
void sort(int array[],int n)
{ // n 为数组元素个数
int i,j,k,temp; // i 为基准位置,j 为当前被扫描元素位置,k 用于暂存出现的较小的元素的位置
for(i=0;i<n-1;i++)
{
k=i;//初始化为基准位置
for(j=i+1;j<n;j++)
{
if (array[j]<array[k]) k=j ; // k 始终指示出现的较小的元素的位置
} //for
if(k!=i)
{
temp=array[i];
array[i]=array[k];
array[k]=temp; // 将此趟扫描得到的最小元素与基准互换位置
}
}
}
int main()
{
int a[10]={1,3,6,8,9,7,5,4,2,1};
int i;
printf("before\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
sort(a,10);
printf("\nafter\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}追问

就是不要固定那10个数,可以自己输入10个数的

追答

int main()
{
int a[10];
int i;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("before\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
sort(a,10);
printf("\nafter\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}

追问

怎么结果不是输入的10个数的正确排序,而是一堆很怪的数?

追答

你是怎么输入的??
1 2 3 4 5 6 7 8 9 3 这样以空格分隔输入的吗??

追问

我输入的是10,9,8,7,6,5,4,3,2,1

追答

以空格分隔 而不是逗号

追问

哦哦,行了哈,谢啦!不过我之前都是用逗号分隔的都可以

温馨提示:答案为网友推荐,仅供参考
相似回答