返回

C++数组如何“删除”重复元素

发布时间:2022-12-23 09:53:25 334
# ios

算法思路:首先我们要把数组中的第一个元素(其次是第二个元素开始比较,第三个元素开始比较......)与后面的每一个数进行比较(两层循环,第一层循环决定开始比较的数,第二层循环决定这个数和后面每个数进行比较),然后如果在比较的过程中两个数相等,就把这两个相同数的后一个数依次往前挪(第三层循环),然后再拿开始那个数和后面的那些数继续比较,如果相同,执行第三层循环。直到第一个数与所有数比较完成,第一层循环的第一遍循环执行完毕,然后开始执行第二遍、第三遍......直到第一层循环执行完毕。

代码展示:

C++数组如何“删除”重复元素_删除数组中相同的元素

#include

using namespace std;


#define N 6


void test() {

int num[N] = { 1,2,2,3,2,5 };

int n = N;

for (int i = 0; i < n - 1; i++) {       //第一层循环

 for (int j = i + 1; j < n - 1; j++) {     //第二层循环

  if (num[i] == num[j]) {

   for (int x = j; x < n - 1; x++) {    //第三层循环

    num[x] = num[x + 1];

   }

   n--;           //总数 -1  

   j--;   //这里j需要 -1:二层循环哪里有一个j++,如果不 -1,就会导致比较的时候是和原来数组的第j位进行比较,就漏了一个数

  }

 }

}

for (int i = 0; i < n; i++) {

 cout << num[i] << "\t";

}

cout << endl << endl;

}


int main() {

test();


system("pause");

return 0;

}


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线