数组元素排序

/*编写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小 排序。n及数组元素在主函数中输入。*/

#include <stdio.h>

void sort(int *x, int n);
void outPutAraay(int *x, int n);
void swap(int *v1, int *v2);

int main(int argc, const char * argv[]) {

    int n;
    printf("请输入数组元素的个数n\n");
    scanf("%i",&n);
    
    //注意:只有n的值确定,才可以定义数组
    int x[n];
    
    for (int i = 0; i < n; i++) {
        printf("请输入数组的第%i个元素\n",i+1);
        scanf("%i",&x[i]);
    }
    
    printf("排序前:\n");

    outPutAraay(x, n);
    
    sort(x, n);
    
    outPutAraay(x, n);
    
    return 0;
}

//排序
void sort(int *x, int n)
{
    for (int i = 0; i < n - 1; i++) {
        for (int j = i + 1; j < n; j++) {
            if (x[i] < x[j]) {
                swap(&x[i], &x[j]);
            }
        }
    }
}

//遍历输出数组
void outPutAraay(int *x, int n)
{
    for (int i = 0; i < n; i++) {
        printf("%i ",x[i]);
    }
    printf("\n");
}

//交换数据
void swap(int *v1, int *v2)
{
    int temp = *v1;
    *v1 = *v2;
    *v2 = temp;
}

 

posted on 2016-02-14 17:39  战斗宝宝007  阅读(244)  评论(0编辑  收藏  举报

导航