C语言编程——选择排序法,要求:由主函数调用排序子函数,对n个整数进行从小到大的排序,谢了

2024-11-09 09:13:07
推荐回答(3个)
回答1:

#include
#define SIZE_N 20 //SIZE_N is the size of the array

void sortFun(int a[], int n)
{
int temp;
for(int i=0;i for(int j=i+1;j if(a[j] {
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}

void main()
{
int a[SIZE_N];
for(int i=0;i {
scanf("%d",&a[i]); //输入数据
}
sortFun(a,SIZE_N); //调用排序函数
for(int j=0;j {
printf("%d\n",a[j]); //输出数据
}
}

以上就是基本的程序,局部可以优化使其更人性化。读入数据和输出数据的方式可以考虑用文件的方式,但排序的函数才是关键。以上程序调试通过,希望可以帮到你。

回答2:

#include
void sort(int a[],int n) //选择排序
{
int i;
int j;
for(i=0;i {
int c=i;
for(j=i+1;j {
if(a[c]>a[j])
{
c=j; //记住最小值的下标。
}
}
if(c !=i) //进行交换。
{
int temp = a[i];
a[i] = a[c];
a[c] = temp;
}
}
}
int main()
{
int a[10]={1,3,5,7,9,2,4,6,8,10};
sort(a,10);
int i;
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
getchar();
return 0;
}

回答3:

附上的网址有具体的写法和分析。选择法啊,冒泡啊什么的都是最好写的了。
如果直接拿来抄,就失去学习的意义了。