当前位置: 代码迷 >> C语言 >> 请教,C语言查找处理重复数据的问题?谢谢
  详细解决方案

请教,C语言查找处理重复数据的问题?谢谢

热度:279   发布时间:2007-07-05 17:34:52.0
请教,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  

----------------解决方案--------------------------------------------------------
我觉得这个程序挺难写的

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

----------------解决方案--------------------------------------------------------
顶啊.
让我们学习一下啊.

----------------解决方案--------------------------------------------------------
还有,LZ把你的意思表述再请楚点,你的表述有点多意,让人无从下手.
----------------解决方案--------------------------------------------------------
找出数组中重复的数

/* 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编辑过]


----------------解决方案--------------------------------------------------------
laigaoat2005你的程序不合要求。

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

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

因为REPEAD里面的数字不一定互不相等,重复数组里面可能还有部分的重复。
----------------解决方案--------------------------------------------------------
顶一下
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
  相关解决方案