编程学习网 > 编程语言 > C/C++开发 > c语言数组去重实现方式
2022
11-28

c语言数组去重实现方式

今天编程学习网为大家讲解c语言数组去重实现方式,有需要的小伙伴可以参考一下:

使用C语言实现数组去重的思路:轮询数组,拿第一个数组元素分别和第一个后面的元素进行比较,若是相等则将后一个元素替换当前元素,然后对后面的元素进行前移操作,前移后轮询次数减1,然后再从当前元素进行比较,直到轮询完整个数组。

由于C语言是跨平台的,在这里就不再指出讲解使用的配置信息了。

下面进行详细讲解和代码演示。

第一步:实现思路讲解:


第一次比较,判断A[0]是否等于A[1]。

a、如果相等:

1、把A[1]赋值给A[0],把重复的元素保留一个,即A[0]= A[1]

2、并且把A[1]后面的元素分别往前移动;

3、数组长度减1

继续从当前元素A[0]开始和后面的元素进行比较,进入第二次比较,直到和最后一个元素比较。

b、如果不相等:进行A[0]A[2]比较,继续判断是否相等,如果不相等则继续轮询,直到最后一个元素。

第二步:代码实现:

核心逻辑代码:

for (int i = 0; i < size; i++)

{

for (int j = i + 1; j < size; j++)

{

if (array[i] == array[j])

{

// 元素前移

array[i] = array[j];

for (int k = j; k < size - 1; k++)

{

// 逐个前移

array[k] = array[k + 1];

}

// 元素往前挪,长度减1

size--;

// 移动元素后任然从当前元素开始逐一比较

i--;

}

}

}

完整的代码,新建一个文件名为distinct.c,然后编写如下代码:


第三步:编译并运行代码进行验证:

a、编译:在终端命令行进入代码根目录,然后执行编译语句:

gcc distinct.c -o distinct

意思就是编译distinct.c文件,并把编译后的文件输出到distinct文件。

b、执行:在终端命令行中输入:

./distinct

表示执行编译后的文件。

c、输出展示:


从图中我们可以看出,我们的去重的算法是没有问题的。

以上就是“c语言数组去重实现方式”的详细内容,想要了解更多C语言教程欢迎持续关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取