编写函数,使用选择排序法对数组进行排序(用C语言)

要求:1、主函数中定义需要排序的数组,并对数组进行初始化(初始化数组的方式自定,可以在定义数组时直接初始化,也可以通过用户输入来确定数组元素),然后输出排序之后的结果。2... 要求:
1、主函数中定义需要排序的数组,并对数组进行初始化(初始化数组的方式自定,可以在定义数组时直接初始化,也可以通过用户输入来确定数组元素),然后输出排序之后的结果。
2、所编写的函数负责使用选择排序法对数组进行排序,特别强调:该函数不受数组元素个数的影响,提示:没有规定函数参数的个数。
展开
 我来答
5onlylove57
推荐于2017-12-16 · TA获得超过131个赞
知道小有建树答主
回答量:94
采纳率:100%
帮助的人:105万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    int a[10],i,j,tmp,b;
    srand(time(NULL));
    for(i=0;i<10;i++)
        a[i]=rand()%100;
    for(i=0;i<10;i++)
        printf("%3d",a[i]);
    printf("\n");
    for(i=0;i<9;i++)
    {
        tmp=i;
        for(j=i+1;j<10;j++)
         {
            if(a[tmp]>a[j])
            tmp=j;
         }
        if(i!=tmp)
        {
            b=a[tmp];
            a[tmp]=a[i];
            a[i]=b;
        }
    }
    for(i=0;i<10;i++)
    printf("%3d",a[i]);
    printf("\n");
    return 0;
}


随机产生数组中的元素, 更合理一些。 百科中有各种版本。

Joshion2008
推荐于2016-01-09 · TA获得超过152个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:142万
展开全部
#include "stdio.h"
 
void sort(const int, int*);
 
int main(int argc, char** argv) {
 
    int array[] = {5, 34, 54, 2, 54, 51, 543, 2};
    int i = 0;
 
    int arraySize = sizeof(array)/sizeof(array[0]);
 
    sort(arraySize, array);
 
    for (i = 0; i < arraySize; ++ i) {
        printf("array[%d] = %d \n",i, array[i]);
    }
 
    return 0;
}
 
//选择排序
void sort(const int size, int* array){
    int i, j = 0;
    int temp = 0;
 
    for (i = 0; i < size; ++ i) {
        for (j = i + 1; j < size; ++ j) {
            if (array[i] < array[j]) {
                temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
        }
    }
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式