删除重复数据 且输出数据与输入数据一致

如果是不要求输出顺序与输入顺序一致,则直接用set就可以筛掉重复的数据,但set会将数据从小到大排序

因此只能用循环的办法,从i开始,i+1循环 循环到与a[i]相同时,将后面的每个数都依次向前移一位

移完之后不要忘记把总数减一,并且下一次要循环的数应该为刚刚的位置,也要减一

#include <iostream>
using namespace std;
int main(){
    int a[500],i,j,k,c;
    while(cin>>a[0]){

        for(i=1;i<500;i++)
        {
            if ( cin.get()==‘\n‘ )
            break;
            cin>>a[i];
                     }
        c=i+1;

        for(i=0;i<c;i++)
            for(j=i+1;j<c;j++)
                if(a[i]==a[j])
                {
                    for(k=j;k<c-1;k++)a[k]=a[k+1];
                    c--;
                    j--;
                }
        for(i=0;i<c-2;i++)
            cout<<a[i]<<" ";
        cout<<a[i]<<endl;
    }
    return 0;
}
时间: 2024-10-14 23:09:55

删除重复数据 且输出数据与输入数据一致的相关文章

C#创建文本文件,写入数据,输出数据

using System; using System.IO; class predefinedTypes {     public static void Main()      {          // 在当前目录创建一个文件myfile.txt,对该文件具有读写权限         FileStream fsMyfile = new FileStream("myfile.txt" , FileMode.Create , FileAccess.ReadWrite);        

c++ 链表删除重复的数据

//List.h #include <iostream> typedef int dataType; struct Node{ Node():data(0),pNextNode(NULL){} //结点构造函数 dataType data; Node* pNextNode; }; class List{ private: Node *head; //作为链表唯一的头指针 int size; //链表长度 public: List(){head=new Node;size=0;} bool is

mysql如何删除重复数据并保留ID最大的数据

题:有一张test表,里面含有三个字段id,name,sex. 问:如何查询重复数据? select name,sex,count(*) from test group by name,sex HAVING count(*)>1. 问:如何删除重复数据并保留ID最大的数据? delete a from test a join (select name,sex,count(*) ,max(id) as id from test group by name,sex HAVING count(*)>

SQL语句删除重复数据

1.如表中没有主键,先添加自动增长主键 alter table 表名 add 列名 int identity (1,1) primary key 2.删除重复数据 delete from 表名 where id not in (select min(id) from 表名 group by id)

Oracle查询重复数据与删除重复记录方法

比如现在有一人员表 (表名:peosons) drop table PERSONS; create table PERSONS ( PNAME VARCHAR2(50), CARDID VARCHAR2(18), ADDRESS VARCHAR2(100) ); insert into persons ( PNAME, CARDID, ADDRESS) values ( '张三', '430682199002121010', '深圳'); insert into persons ( PNAME,

mysql 删除重复数据

如题:mysql 数据库删除重复数据 因为是mysql 所以其他数据哭的命令在mysql 中是不能使用的.不要想当然的使用sql 脚本 delete from table1 where field1 in (select field1 from table1 group by field1 having count(field1) > 1) and rowid not in (select min(rowid) from table1 group by field1 having count(f

mysql 删除重复数据的sql语句

CREATE TABLE tmp AS SELECT id FROM get_review_url WHERE (no,title,name,content) IN (SELECT no,title,name,content FROM get_review_url GROUP BY no,title,name,content HAVING COUNT(*) > 1) AND id NOT IN (SELECT MIN(id) FROM get_review_url GROUP BY no,tit

取两个DataTable的交集,删除重复数据

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 /// <summary>         /// 取两个DataTable的交集,删除重复数据         /// </summary>         /// <param name="sourceDataTable">源DataTable</param>         

T-SQL删除重复数据

数据重复分为两种情况:一种是每个字段都相同的完全重复,第二种是部分字段重复的结果集.比如Name字段重复,而其他字段不一定重复或者重复可以忽略. 第一种情况比较容易解决,使用select distinct * from tableName就可以得到无重复记录的结果集. 如果该表需要删除重复的记录(重复记录保留一条),可以按一下方法删除: select distinct * into #Tmp from tableName drop table tableName select * into ta