《C语言名题精选百则》
题目:已知两个整数数组f[]与g[],他们的元素都已经从小到大排列,而且数组中的元素各不相同。例如,f[]中可能偶1,3,4,7,9,而g[]中有3,5,7,8,10.
请写一个程序,算出这两个数组彼此之间有多少组相同的数据。
这题比较简单,直接上程序了:
#include <stdio.h>
int eqcount(int *f, int m, int *g, int n);
int main(int argc, char *argv[])
{
int f[5] = {1,2,3,4,6};
int g[6] = {1,2,4,5,6,8};
int count = eqcount(f, 5, g, 6);
printf("%d\n", count);
return 0;
}
int eqcount(int *f, int m, int *g, int n)
{
int index_f = 0;
int index_g = 0;
int count = 0;
while(index_f < m && index_g < n)
{
if(f[index_f] == g[index_g])
{
index_f++;
index_g++;
count++;
}
else if(f[index_f] < g[index_g])
{
index_f++;
}
else
{
index_g++;
}
}
return count;
}
参考答案和我的程序差不多,就不赘述了。
转载于:https://blog.51cto.com/charlesxie/780838