| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11671 人关注过本帖
标题:如何删除数组中相同的元素?
只看楼主 加入收藏
henji
Rank: 1
等 级:新手上路
帖 子:227
专家分:0
注 册:2009-4-19
结帖率:38.67%
收藏
 问题点数:0 回复次数:9 
如何删除数组中相同的元素?
#include "stdafx.h"

#include "stdio.h"
int main(int argc, char* argv[])
{
     int a[5]={2,2,3,4,5};
    int b=0;
    int i=0;
    int j=0;
    int sum=0;
    printf("input b:\n");
    scanf("%d",&b);
    for(i=0;i<5;i++)
    {
        if(b==a[i])
            
    }

    for(j=i;j<5;j++)
    {
        a[j]=a[j+1];
    }

    for(i=0;i<5;i++)
    {
        printf("%4d",a[i]);
    }
   
    printf("\n");
 

   
    printf("\n");
    return 0;
}
搜索更多相关主题的帖子: 删除 元素 
2009-09-17 23:33
henji
Rank: 1
等 级:新手上路
帖 子:227
专家分:0
注 册:2009-4-19
收藏
得分:0 
#include "stdafx.h"
 
#include "stdio.h"
int main(int argc, char* argv[])
{
    int a[5]={1,1,3,1,5}; //如果数组元素是这样的,元素1为什么总是不能删除?
    int b;
    int i;
    int j;
    int sum=0;
    printf("input b:\n");
    scanf("%d",&b);
    for(i=0;i<5;i++)
    {
        if(b==a[i])
        {
            for (j=i;j<4;j++)
            {
                a[j]=a[j+1];
            }
            
            sum=sum+1;
        }
    }
    printf("sum is %d\n",sum);
 
    for(i=0;i<5-sum;i++)
    {
        printf("%4d",a[i]);
    }
    printf("\n");
    return 0;
}
2009-09-18 00:19
atom_09
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:92
专家分:141
注 册:2009-8-24
收藏
得分:0 
你指的删除是什么意思 是换成别的值还是从内存冲删除这个元素
2009-09-18 09:41
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
程序代码:
#include<iostream>
#include<algorithm>
int main()
{
    int a[6];
    for( int i=0; i<3;i++)
    {
        a[2*i+1]=a[2*i]=i;
    }
    for(int i=0;i<6;i++)
        std::cout<<a[i]<<" ";
    std::cout<<std::endl;
    int *q=std::unique(&a[0],&a[5]);
    for( int *p=a;p!=q;p++)
        std::cout<<*p<<" ";
    return 0;
}

2009-09-18 09:53
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LS:不会用STL就别用好不好?都用错了。

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-09-18 10:19
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
请问楼上,我哪里错了?

谢谢。
2009-09-18 10:20
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
-BASH-4.0.23$ ./out
0 0 1 1 2 2
0 1 2
-BASH-4.0.23$



他不就是要实现这个功能?
2009-09-18 10:22
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
你试试看,在初始化后面加一句a[5] = 3;看看你的输出结果?

你再试试看,把初始化改为3 - i看看你的输出结果?

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-09-18 10:25
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
OK , unique的bound是[start,end)
2009-09-18 10:35
xhy292661475
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-12-20
收藏
得分:0 
求助
#include<stdio.h>
#define N 10
del(int a[N],int b)
{
   int i,j;
   for(i=0,j=0;i<N;i++)
       if(a[i]!=b)
           a[i++]=a[i];
       a[j]=0;
}
main()
{
    int a[10]={1,4,77,0,9,2,3,4,8,9},b=9;
    printf("\n原数组为:%d\n",a);
    del(a,b);
    printf("删除后的数组为:%d",a);
}
各位大神,帮我看看哪错了

[ 本帖最后由 xhy292661475 于 2013-12-20 12:09 编辑 ]
2013-12-20 11:12
快速回复:如何删除数组中相同的元素?
数据加载中...
 
   



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

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