Chinaunix首页 | 论坛 | 博客
  • 博客访问: 98188
  • 博文数量: 29
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 476
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-07 15:10
文章分类

全部博文(29)

文章存档

2011年(1)

2008年(28)

我的朋友

分类: C/C++

2008-08-15 10:25:15

   已知两个整数数组f[]和g[],他们的元素都已经从小到大排列好,而且两个数组中的元素各不相同,例如:f[]中有1,3,4,7,9, 而g[]中有3,5,7,8,10. 试编写程序算出这两个数组之间有多少组相同的元素. 例子中f[1]与g[0]为3是第一组; f[3]与g[2]为7是第二组.
-------------------------------------------------------------------------------------

#include <stdio.h>

int main()
{
    int f[] = {1,3,4,7,9,11};
    int g[] = {3,5,7,8,10,11};

    int nf = sizeof(f)/sizeof(int);
    int ng = sizeof(g)/sizeof(int);

    int pf = 0, pg = 0;        //指向数组f,g的"指针"

    while(pf<nf && pg<ng)
    {
        if(f[pf]<g[pg])pf++;
        if(f[pf]>g[pg])pg++;
        if(f[pf]==g[pg])
        {
            printf("f[%d]=g[%d]:%d\n",pf,pg,f[pf]);
            pf++;pg++;
        }
    }
    return 0;
}

阅读(772) | 评论(0) | 转发(0) |
0

上一篇:支配值数目

下一篇:两数组最短距离

给主人留下些什么吧!~~