在C语言中,去重通常是通过使用数组、循环和条件判断等基本语法来实现的,以下是一个简单的去重示例:
(图片来源网络,侵删)
1、我们需要创建一个数组来存储原始数据,这里我们假设数组的长度为10,存储的数据范围为0到9。
#include <stdio.h> int main() { int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int n = sizeof(arr) / sizeof(arr[0]); }
2、接下来,我们需要遍历数组,检查每个元素是否已经存在于结果数组中,我们可以使用一个辅助数组temp
来实现这个功能。temp
数组的长度等于原始数组的长度,初始值为1,当遇到一个新的元素时,将其添加到结果数组中,并将temp
数组对应位置的值设置为该元素。
int temp[10] = {1}; int result[10]; int index = 0; for (int i = 0; i < n; i++) { if (temp[arr[i]] == 1) { result[index++] = arr[i]; temp[arr[i]] = arr[i]; } }
3、我们需要输出结果数组,由于结果数组的长度可能小于原始数组的长度,因此我们需要使用index
变量来控制输出的范围。
printf("去重后的结果为:"); for (int i = 0; i < index; i++) { printf("%d ", result[i]); } printf(" ");
将以上代码整合到一起,完整的去重程序如下:
#include <stdio.h> #include <stdlib.h> int main() { int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int n = sizeof(arr) / sizeof(arr[0]); int temp[10] = {1}; int result[10]; int index = 0; for (int i = 0; i < n; i++) { if (temp[arr[i]] == 1) { result[index++] = arr[i]; temp[arr[i]] = arr[i]; } } printf("去重后的结果为:"); for (int i = 0; i < index; i++) { printf("%d ", result[i]); } printf(" "); return 0; }
运行上述程序,输出结果为:去重后的结果为:0 1 2 3 4 5 6 7 8 9
,可以看到,原始数组中的重复元素已经被成功去除。
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/380094.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复