1. 程式人生 > >C語言陣列去重排序(從大到小)

C語言陣列去重排序(從大到小)

好久沒寫程式了,改了好久也只能寫成這樣,勉強能用

#include<stdio.h>
void bubble_sort(int *arr,int len) {  
    int i, j,temp;
       for(i=0;i<len;i++){
           for(j=i+1;j<len;j++){
            if(arr[i]==arr[j]){
                arr[j]=arr[len-1];
                len--;
            }
        }}//陣列去重
    for (i = 0; i <=len - 1; i++)          
        for (j = len-2; j >=i; j--)  //從後向前,排好序的放在陣列前面 
            if (arr[j]<arr[j + 1])          
               {
               temp=arr[j];
               arr[j]=arr[j+1];
               arr[j+1]=temp;}//氣泡排序
    for(i=0;i<len;i++){
    printf("%d",arr[i]);
    }        //輸出  
}  
void main(){
    int a[20];
    int n,i;
    printf("請輸入n的值(小於20):");
    scanf("%d",&n);
    printf("請輸入%d個數:",n);
    for(i=0;i<n;i++){
        scanf("%d",&a[i]); 
    } //輸入陣列
    bubble_sort(a,n);
}