C語言陣列去重排序(從大到小)
阿新 • • 發佈:2019-01-08
好久沒寫程式了,改了好久也只能寫成這樣,勉強能用
#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); }