今天编程学习网为大家讲解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语言教程欢迎持续关注编程学习网
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/10424/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料