刪去一維有序數組中所有相同的數,使之只剩一個。


  刪去一維數組中所有相同的數,使之只剩一個。數組中的數已按由小到大的順序排列,函數返回刪除后數組中數據的個數。  例如,若一維數組中的數據是:   2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10  刪除后,數組中的內容應該是:  2 3 4 5 6 7 8 9 10。

#include <stdio.h>
#define    N    80
int  fun(int  a[], int  n)
{
    int i=0,j=0;
    while(i<n)
    {
        while(a[i+1]==a[i])
        {
            i++;
        }
        a[j++]=a[i];
        i++;
    }
    return j;
}
main()
{  int  a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;void NONO ();
   printf("The original data :\n");
   for(i=0; i<n; i++)printf("%3d",a[i]);
   n=fun(a,n);
   printf("\n\nThe data after deleted :\n");
   for(i=0;i<n;i++)printf("%3d",a[i]); printf("\n\n");
}

運行結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM