| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1007 人关注过本帖
标题:求问一个能删除数组中连续的相同的数的方法,谢谢!
只看楼主 加入收藏
c的小苹果
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-1-30
结帖率:0
收藏
已结贴  问题点数:10 回复次数:1 
求问一个能删除数组中连续的相同的数的方法,谢谢!
就是说 让用户输入20个数,然后寻找数组中连续的相同的数,并且当连续的个数超过三个数时,就将这一组连续的数删除,最终输出一个新的数组。

求问如何才能判断并删除数组中连续而又相同的超过一定个数的数呢(好拗口)?谢谢大家
搜索更多相关主题的帖子: 用户 如何 
2016-01-30 04:30
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
可以将三个以上连续相同的数字做标记都设置为0,然后你再输出不为0的。前提是数组中不能有0,思路差不多就这样。
程序代码:
int i,j,k;
int a[20]={1,2,2,2,3,4,5,6,7,8,8,8,9,9,9,11,12,10,13,10};
for(i=0;i<=17;i++)  //数组中每个数都要与后面的数字比较,直到第18个数,以后的数不可能有连续三个以上相同的
{  
   k=0;  //统计相同的次数
   for(j=i+1;j<20;j++)
   {
      if(a[i]==a[j])
      { k++; }
      else
      { break; }  //一旦不相同,退出比较
   }
   if(k>=3)  //如果相同个数大于3
   {
      for(j=i;j<i+k;j++)  //将相同的K个数都设置为0
      { a[j]=0; }
      i=i+k-1;  //i设置为最后一个设置为0的数的下标,i++后再继续比较可节约时间
   }
}


[此贴子已经被作者于2016-1-31 21:59编辑过]


   唯实惟新 至诚致志
2016-01-30 11:12
快速回复:求问一个能删除数组中连续的相同的数的方法,谢谢!
数据加载中...
 
   



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

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