首页 > 编程语言 > 详细

删去一维无序数组中所有相同的数,使之只剩一个。

时间:2020-04-28 11:30:13      阅读:119      评论:0      收藏:0      [点我收藏+]

  删去一维数组中所有相同的数,使之只剩一个。数组中的数无序排列,函数返回删除后数组中数据的个数。  例如,若一维数组中的数据是: 2 2 5 2 3 4 2 4 5 6 6 8 6 6 7 4 7 8 9 6 9 10 10 2 10 3 1 1 10 3 删除后,数组中的内容应该是:   2  5  3  4  6  8  7  9 10  1。

#include <stdio.h>
#define    N    80
int  fun(int  a[], int  n)
{
    int i=0,j=0,k;
    int b[N];
    for(k=0;k<n;k++)
    {
        b[k]=a[k];
    }
    do
    {
        a[j++]=b[i];
        for(k=0;k<n;k++)
        {
            if(b[k]!=a[j-1])
            {
                b[i++]=b[k];
            }
        }
        n=i;
        i=0;
    }while(a[j-1]!=b[i]);
    return j;
}
main()
{  int  a[N]={2,2,5,2,3,4,2,4,5,6,6,8,6,6,7,4,7,8,9,6,9,10,10,2,10,3,1,1,10,3},i,n=30;
   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");
}

运行结果

技术分享图片

删去一维无序数组中所有相同的数,使之只剩一个。

原文:https://www.cnblogs.com/wlei5206/p/12792881.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!