數組元素排序

/*編寫一個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;
}
相關文章
相關標籤/搜索