| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4356 人关注过本帖
标题:删除数组中重复的数据
只看楼主 加入收藏
tszhao
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-3-4
收藏
 问题点数:0 回复次数:7 
删除数组中重复的数据
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    int i,j,a[10];
    void del(int *p,int n);
    srand(time(0));
    for(i=0;i!=10;++i)
        a[i]=rand()%10+1;
    for(i=0;i!=10;++i)
        cout<<a[i]<<" ";
    cout<<endl;
    del(a,10);
    return 0;
}
void del(int *p,int n)
{
    int i,j,k;
    for(i=0;i!=n-1;++i)
        for(j=i+1;j!=n;++j)
            if(p[i]==p[j])
            {
                for(k=j;k!=n-1;++k)
                    p[k]=p[k+1];
                n--;
            }
            for(i=0;i!=n;++i)
                cout<<p[i]<<" ";
            cout<<endl;
}
运行的时候,有时候正确,有时候又有错误!~到底哪里有问题?
搜索更多相关主题的帖子: int 数据 cout del void 
2008-03-21 08:07
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
这种题目这个星期就写了好多便了...自己找啊昨天还写过...

学习需要安静。。海盗要重新来过。。
2008-03-21 09:02
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 
for(i=0;i!=n-1;++i)
        for(j=i+1;j!=n;++j)
这里不行吧。如果最后两数相等,就不能达到效果了!

i like linux...
2008-03-21 10:02
zm1986
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-3-16
收藏
得分:0 
如果一个数和后面连续的两个数相等,就会只删除前一个数,后一个数不再比较,因为++j了
还有就是如果最后两个数相等,设此次循环的n=n1,i=n1-2,j=n1-1时,p[i]==p[j],再执行n--,i++,此时n=n1-1,i=n1-1
则在下一次循环中i!=n-1,即(n1-1)!=(n1-1)-1,从此无限循环下去,
我能看到的就这些,不知道对不对
2008-03-22 21:49
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include"stdio.h"
#include"string.h"
int main()
{
    char c[100];
    char *p;
    char a[300];
    memset(a,0,sizeof(a));

    gets(c);
    p=c;
    do
    {
        if(a[*p]++>0)
        {
            strcpy(p,p+1);
        }
        else
            p++;
    }while(*p);
    puts(c);
}

学习需要安静。。海盗要重新来过。。
2008-03-22 21:57
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
不考虑效率我的比较简洁..好好看书...加油

学习需要安静。。海盗要重新来过。。
2008-03-22 21:57
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
use STL

sort() & unique() or sort() & unique_copy()

Fight  to win  or  die...
2008-03-23 04:09
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
泛性算法用起来还是要磨合的...呵呵...

学习需要安静。。海盗要重新来过。。
2008-03-23 09:25
快速回复:删除数组中重复的数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028497 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved