C语言数组去除重复内容

C语言数组去除重复内容,第1张

#include <stdio.h> // 升序数组srcvoid sort(int *src, int len){    int tem    for (int i = 0 i < len i++)    {        for (int j = 0 j < len - i - 1 j++)            if (src[j] > src[j+1])            {                tem = src[j]                src[j] = src[j+1]                src[j+1] = tem            }    }} int main(){    int num[10] = {0, 2, 5, 1, 1, 5, 4, 9, 2, 1}, d    int i = 0, cnt     sort(num, 10)  // 排序    d = num[0]    for (i = 1 i < 10 i++) // 遍历比较    {        if (num[i] != d)        {            printf("%d ", d)            d = num[i]        }    }    if (num[9] == d)        printf("%d\n", d)    return 0}

利用双重循环,将每个值依次与其后面的值相比较,如果有相同的则删除该元素即可。

删除时,可以使用将后面元素依次向前移动一位,同时总长度减一的方式。

参考代码如下:

int remove_repeat(int *a, int l)

{

    int i, j, k

    

    for(i = 0 i < l i ++)

    {

        for(j = i+1 j <l j ++)//对后面每个元素比较,去重。

        {

            if(a[j] == a[i])//发现重复元素。

            {

                for(k = j+1 k<l k ++)//依次前移一位。

                    a[k-1] = a[k]

                l--//总长度减一。

            }

        }

    }

    

    return l//返回新的长度值。

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9612563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存