| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 965 人关注过本帖
标题:请教,C语言查找处理重复数据的问题?谢谢
只看楼主 加入收藏
zslekfb
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-7-5
收藏
 问题点数:0 回复次数:7 
请教,C语言查找处理重复数据的问题?谢谢

请教各位高手这个C语言程序怎么做,谢谢!

写一段C语言程序实现以下问题:

有100个数DATA[100],其中后面的部分都是一些重复的数,如:abcd ef ef ef ...,重复数字的数目x不知道,重复的次数y也不知道,现在要求把它后面的重复数字找出来,放在REPEAT[]中,再把前面的数字找出来,放在HEAD[]中。即HEAD[]=abcd,REPEAT[]=ef。

例如:DATA[100]=2121313131 21213131 21213131 21213131 ......
程序运行以后HEAD[]=2121313131,REPEAD[]=21213131。(HEAD是两个21三个31,REPEAT是两个21两个31)

搜索更多相关主题的帖子: C语言 数据 DATA REPEAT 
2007-07-05 17:34
Javal
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-7
收藏
得分:0 
我觉得这个程序挺难写的

有没有高人抽点时间写一下让我们学习学习,谢谢先

猝然临之而不惊,无故加之而不怒 /?spaced" target="_blank">Linux C资料
2007-07-05 23:30
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
顶啊.
让我们学习一下啊.
2007-07-06 17:32
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
还有,LZ把你的意思表述再请楚点,你的表述有点多意,让人无从下手.
2007-07-06 17:34
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
找出数组中重复的数

/* programming Name: Finding out the repeated number. 找出数组中重复的数
** author: laigaoat2005
** data : 2007-7-6
** ver: 1.0
** note: 1。本程序是一个测试程序,原数组中不能有0,第二版将改进这个问题。
** 2。本程序得到space的指点,在此特表示感谢。呵呵,初学好久了,请高人指点.
*/

#include <stdio.h>
int main(void)
{
int data[100]={12,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22}; //假定原数组已经被初始化,这里初始化前18元素作为测试
int head[100]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},repeat[100]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //这里初始化前18元素作为测试
int temp=0;
int i=0,j=0,k=0,l=0,m=0;

printf("原数组:\n");
for (i=0;i<17;i++)
{
printf("%d ",data[i]);
}
printf("\nhead[]中内容为:\n");



for(i=0;i<17;i++)
{
m=0;
temp=data[i]; //将第一个元素值赋给temp
for(j=i+1;j<17;j++) //从第二个元素开始检查原数组中的数,看它是否与前一个相等
{
if(temp==data[j]) //如果相等,
{
data[j]=0; //将原数组的值设为0
m=1; //将m设为1,作为标志
}
}
if (m==1) //如果m=1,说明找到了与前一个元素相等的数
{
repeat[k]=temp; //将前一个数的值赋给repeat[]
k++; //将repeat脚标自增1
}
else //如果没有找到与前一个数相等的元素
{
head[l]=temp; //将临时数值赋给head[];
l++; //将head的脚标自增1
}
}


for(i=0;i<17;i++)
{
if (head[i]!=0) printf("%d ",head[i]);
}
printf("\nrepeat[]中内容为:\n");


for(i=0;i<17;i++)
{
if (repeat[i]!=0) printf("%d ",repeat[i]);
}
printf("\n");
}

[此贴子已经被作者于2007-7-6 21:08:23编辑过]

2007-07-06 18:45
zslekfb
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-7-5
收藏
得分:0 
laigaoat2005你的程序不合要求。

例如:DATA[100]=2121313131 21213131 21213131 21213131 ......

程序运行以后要求结果为
HEAD[100] = 2121313131 00000000......
REPEAD[100] = 21213131 00000000......

因为REPEAD里面的数字不一定互不相等,重复数组里面可能还有部分的重复。
2007-07-10 13:16
zslekfb
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-7-5
收藏
得分:0 
顶一下
2007-07-13 11:19
zslekfb
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-7-5
收藏
得分:0 
2007-07-31 09:44
快速回复:请教,C语言查找处理重复数据的问题?谢谢
数据加载中...
 
   



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

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