Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1395822
  • 博文数量: 143
  • 博客积分: 10005
  • 博客等级: 上将
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-23 17:25
个人简介

淡泊明志 宁静致远

文章分类

全部博文(143)

文章存档

2011年(2)

2009年(1)

2007年(22)

2006年(118)

我的朋友

分类: C/C++

2006-11-06 09:07:21

题目: 有一个数组t[100],存放了1~99之间的数字,用效率较高的代码把重复数字去掉。例如数组{1,2,2,2,3,5,6,6}变成{1,2,3,5,6}。

因为是高效率,我们可以采用空间换时间的策略来解决。

下面是完整的源代码:

void RemoveRep()
{
 int t[100],tTemp[100];
 int i,j;
 srand((unsigned)(time(NULL)));
 for(i=0;i<100;i++)     //初始化数组
 {
  t[i] = 9999;
  tTemp[i] = 9999;
 }

 for(i=0;i<100;i++)     //随机产生100个数字
 {
  j = rand()%99+1;
  t[i] = j;
  printf("%d\t",t[i]);
  if(i%10 == 9)
   printf("\n");
 }
 for(i=0;i<100;i++)//剔除算法
 {
  if(tTemp[t[i]] == 9999)
   tTemp[t[i]] = t[i];
 }
 printf("********************************************************************************\n");
 j = 0;
 for(i=0;i<100;i++)
 {
  if(tTemp[i] != 9999)
  {
   j++;
   printf("%d\t",tTemp[i]);
   if(j%10 == 0)
    printf("\n");
  }
 }
 printf("\n");
}

阅读(1894) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~