已知两个整数数组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) |