Chinaunix首页 | 论坛 | 博客
  • 博客访问: 176962
  • 博文数量: 43
  • 博客积分: 611
  • 博客等级: 中士
  • 技术积分: 1053
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 13:37
文章存档

2015年(3)

2013年(23)

2012年(17)

我的朋友

分类: C/C++

2012-12-26 19:37:07

        问题描述:已知两个整数数组f[]与g[],它们的元素都已经从小到大排列好,而且两个数组中的元素都各不相同。例如,f[]中有1,3,4,7,9,而g[]中有3,5,7,8,10。试编写程序算出这两个数组之间有多少组相同的元素。就这个例子而言,f[1]与g[0]是一组,f[3]与g[2]是一组。

        我的思路:关键点还是"元素都已经从小到大排列好"。那么,两个数组,一起遍历就可以解决问题。代码如下:


点击(此处)折叠或打开

  1. #include <stdio.h>
  2.  
  3.  int f[]={1,3,4,7,9};
  4.  int g[]={3,5,7,8,10};
  5.  int len_f=sizeof(f)/sizeof(int);
  6.  int len_g=sizeof(g)/sizeof(int);
  7.  int result=0;
  8.  
  9.  //函数原型
  10.  void equal_count();
  11.  
  12.  int main()
  13.  {
  14.      equal_count();
  15.      return 0;
  16.  }
  17.  
  18.  void equal_count()
  19.  {
  20.      int i,j;
  21.      for(i=0,j=0;i<len_f && j<len_g;)
  22.      {
  23.          if(f[i]==g[j])
  24.          {
  25.              printf("f[%d]==g[%d]\n",i,j);
  26.              result++,i++,j++;
  27.          }
  28.          else if(f[i]>g[j])
  29.              j++;
  30.          else
  31.              i++;
  32.      }
  33.      printf("result is: %d\n",result);
  34.  }
       如果您觉得我的文章对您有帮助,请顶一下,非常感谢!

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