仔细想才发现处理过程是不一样的,删除重复数据要删除后面重复的保留第一个,删除所有的是把包括第一次出现的一起删除了。不知道有没有理解对。下面是一次作业的代码,比较懒没有把和删除无关的部分截掉。

// a01101.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
//给定一个整型数组:
//–int data[20] = { 12, 3, 5, 7, 23, 65, 4, 7, 22, 11, 78, 146, 13, 3,
//–98, 4, 7, 19, 76, 12 }
//•要求:
//–删除重复数据
//–按照升序进行冒泡排序(或其它排序算法)并输出最终结果
//–输出如下:
//•原始数据:…….
//•重复数据:…….
//•升序排序后数据:……int _tmain(int argc, _TCHAR* argv[])
{void showdata(int [], int);int* repeatdata(int[], int[], int);void sort(int [], int);int rawdata[20] = { 12, 3, 5, 7, 23, 65, 4, 7, 22, 11, 78, 146, 13, 3, 98, 4, 7, 19, 76, 12 };int size = sizeof(rawdata) / sizeof(rawdata[0]);/*printf("%d\n", size);*/printf("the raw data are:\n");showdata(rawdata, size);int *nonrepeatdata=new int[size];nonrepeatdata = repeatdata(rawdata, nonrepeatdata, size);sort(nonrepeatdata, size);delete[] nonrepeatdata;return 0;
}void showdata(int rawdata[], int size){ /*int size = sizeof(a)/sizeof(a[0]);*//*printf("%d\n", size);*/for (int i = 0; i < size; i++){if (rawdata[i] != -1){printf("%d", rawdata[i]);if (i < size - 1)printf(",");}}printf("\n");printf("------------------------------------------------------------");printf("\n");
}int* repeatdata(int rawdata[], int nonrepeatdata[], int size){int *repeatdata = new int[size];for (int i = 0; i < size; i++){repeatdata[i] = -1;nonrepeatdata[i] = -1;}int repeatcnt = 0, nonrepeatcnt = 0;for (int i = 1; i < size; i++){for (int j = 0; j < i; j++){if (rawdata[i] == rawdata[j]){for (int k = 0; k <= repeatcnt; k++){if (rawdata[j] == repeatdata[k])break;else{repeatdata[repeatcnt] = rawdata[j];repeatcnt++;break;}}break;}else if (j == i - 1){nonrepeatdata[nonrepeatcnt] = rawdata[i];nonrepeatcnt++;}}}nonrepeatdata[nonrepeatcnt] = rawdata[0];nonrepeatcnt++;printf("there are %d repeated datas:\n", repeatcnt);showdata(repeatdata, size);/*showdata(nonrepeatdata, nonrepeatcnt);*/delete[] repeatdata;return nonrepeatdata;
}void sort(int rawdata[], int size){for (int i = 0; i < size; i++){for (int j = i + 1; j < size; j++){if (rawdata[i] > rawdata[j]){int temp = rawdata[i];rawdata[i] = rawdata[j];rawdata[j] = temp;}}}printf("the nonrepeated sorted data are:\n");showdata(rawdata, size);
}
// a01102.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include <vector>
using namespace std;/*
•P.438  #13
•函数removeDup()把向量对象作为参数,并删除所有重复元素
–给定输入:int N[] = { 1, 10, 4, 1, 5, 8, 2, 5, 10, 6, 7, 4 };
–void removeDup(vector <int> &v)
•编写用数组值初始化的向量程序,计算平均值,然后输出每个数值相对于平均值的波动(+/ -)
–int arr[] = { 1, 6, 2, 9, 12, 15, 33, 28 };*/
#define NUM1 100int _tmain(int argc, _TCHAR* argv[])
{void removeDup(vector <int>&);void analyse(vector<int>&);vector<int> v1, v2, v3;vector<int>::iterator it1;for (int i = NUM1 - 1; i >= 0; i--)v1.push_back(i);/*for (int i = 0; i < NUM1; i++)printf("%d ", v1[i]);*//*printf("the inverted ordered sequence is:\n");for (it1 = v1.begin(); it1 != v1.end(); it1++)printf("%d ", *it1);*//*printf("\n");printf("------------------------------------------------------");printf("\n");*/int N[] = { 1, 10, 4, 1, 5, 8, 2, 5, 10, 6, 7, 4 };int size = sizeof(N) / sizeof(N[0]);for (int i = 0; i < size; i++)v2.push_back(N[i]);/*for (int i = 0; i < size; i++)printf("%d ", v2[i]);*/printf("\n");printf("------------------------------------------------------");printf("\n");removeDup(v2);printf("\n");printf("------------------------------------------------------");printf("\n");int arr[] = { 1, 6, 2, 9, 12, 15, 33, 28 };size = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < size; i++)v3.push_back(arr[i]);/*printf("%d", size);for (int i = 0; i < size; i++)printf("%d ", v3[i]);*/analyse(v3);return 0;
}void removeDup(vector <int> &v){vector<int>::iterator it;/*printf("%d ", v.size());*/vector<int> vnonrepeat;int size = v.size();vector<int>  vnote(size);for (int i = 1; i < size; i++){for (int j = 0; j < i; j++){if (v[i] == v[j]){vnote[i] = 1;vnote[j] = 1;}}}for (int i = 0; i < size; i++){if (vnote[i] == 0)vnonrepeat.push_back(v[i]);}for (it = vnonrepeat.begin(); it != vnonrepeat.end(); it++)printf("%d ", *it);return;
}void analyse(vector<int>& v){float aver(vector<int>&);float ave = aver(v);vector<int>::iterator it;for (it = v.begin(); it != v.end(); it++){if (*it < ave)printf("-%.2f ", ave - *it);elseprintf("+%.2f ", *it - ave);}
}float aver(vector<int>& v){int size = v.size();float sum = 0;for (int i = 0; i < size; i++)sum += v[i];
/*printf("%d ", size);printf("%f ", sum );printf("%f ", sum / size);*/return sum / size;
}

删除重复数据和删除所有重复数据不同处理方法相关推荐

  1. pandas使用drop_duplicates函数基于subset参数指定的数据列子集删除重复行、并设置keep参数保留重复行中的最后一个数据行

    pandas使用drop_duplicates函数基于subset参数指定的数据列子集删除重复行.并设置keep参数保留重复行中的最后一个数据行 目录

  2. pandas删除数据行中的重复数据行、基于dataframe所有列删除重复行、基于特定数据列或者列的作何删除重复行、删除重复行并保留重复行中的最后一行、pandas删除所有重复行(不进行数据保留)

    pandas删除数据行中的重复数据行.基于dataframe所有列删除重复行.基于特定数据列或者列的作何删除重复行.删除重复行并保留重复行中的最后一行.pandas删除所有重复行(不进行数据保留) 目 ...

  3. MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据

    MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据 目录导航: 开发背景: 实战: 表结构如下图所示: 操作: 总结: 回到顶部 开发背景: 最近在做一个批量数据导入到MySQL数据 ...

  4. python去重复的数据_Python中mysql查询重复数据并删除重复数据

    #coding:utf-8 import mysql.connector mydb = mysql.connector.connect( host='localhost', user='root', ...

  5. mysql插入数据与删除重复记录的几个例子(收藏)

    mysql插入数据与删除重复记录的几个例子 12-26shell脚本实现mysql数据的批量插入 12-26mysql循环语句插入数据的例子 12-26mysql批量插入数据(insert into ...

  6. mysql用一条sql语句删除重复记录_mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句...

    正好想写一条删除重复语句并保留一条数据的SQL,网上查了一部分资料写的很详细,但还是在这里写下自己的理解,以遍后续学习 .如下: 表字段和数据: SQL语句: DELETE FROM`user`WHE ...

  7. python数据框去重_【Python】基于某些列删除数据框中的重复值

    Python按照某些列去重,可用drop_duplicates函数轻松处理.本文致力用简洁的语言介绍该函数. 一.drop_duplicates函数介绍 drop_duplicates函数可以按某列去 ...

  8. python绘制星空图_【Python】基于某些列删除数据框中的重复值

    阿黎逸阳 精选Python.SQL.R.MATLAB等相关知识,让你的学习和工作更出彩(可提供风控建模干货经验). Python按照 某些列去重 ,可用 drop_duplicates函数轻松处理 . ...

  9. SQL Server 表中有重复的数据,无法对重复数据进行更新或删除。

    SQL Server 表中有重复的数据,无法对重复数据进行更新或删除. 弹出错误信息提示窗口提示"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行(2行). 通常这种情况是因为表 ...

  10. 【转贴】Oracle查询重复数据与删除重复记录方法

    Oracle查询重复数据与删除重复记录方法 比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 select p1.* from persons ...

最新文章

  1. linux命令——tar
  2. c语言函数打印零星,C语言零星笔记--(const、typedef)
  3. HTML5 本地存储
  4. J2EE团队与DotNet团队如何合作开发一个系统?
  5. P1145 约瑟夫 W(模拟)
  6. mysql数据库思维导图
  7. 关于[super dealloc]
  8. python快速入门及进阶
  9. 8.2 知识蒸馏 讲解 意境级
  10. 使用Windows 7 管理Windows 2008 R2
  11. 持续集成(CI)- 几种测试的区别(摘录)
  12. 禁止提示:You have new mail in /var/spool/mail/root
  13. logit回归模型假设_LOGISTIC回归分析
  14. 优麒麟使用教程第四期:Linux平台U盘启动盘制作(建议收藏)
  15. 安装vue-cli脚手架使用swiper
  16. win10 文件系统错误-2147416359
  17. java判断线与矩形相交_判断任意多边形与矩形的相交(线段与矩形相交或线段与线段相交)...
  18. 微信小程序调用小票打印机实现打印订单
  19. 计算机学ppt是怎么做,用电脑怎么做教学课件
  20. ji计算机内存不足怎么回事,Win7提示内存不足的原因及应对措施

热门文章

  1. 四阶幻方c语言编程,C语言实例 求四阶的素数幻方
  2. 支付宝小额免密支付和代扣区别:原来如此
  3. 需求分析:揭露原型图背后的黄金圈法则
  4. 开天眼,顿悟软件设计之道
  5. 服务器rstudio的安装url怎么修改,Rstudio中更换包镜像服务器的方法
  6. Gap业绩逆转,宝尊电商是如何当好“全球品牌数字商业伙伴”的?
  7. 计算机与网络安全类专业就业前景,乔治华盛顿大学网络安全与计算机科学专业介绍_网络安全与计算机科学专业排名及就业方向和前景-小站留学...
  8. 打包chrome浏览器扩展程序
  9. java实现心跳监控
  10. 【Midjourney】Midjourney Prompt 提示词 ② ( 怀旧像素风 | 物体 A 被物体 B 包围 | 折纸艺术风格 )