#include <stdio.h>
#include <stdlib.h>
/*
求两个有序数组的公共元素
*/
/*
思路:
由于数组由小到大存储,
故若arr1[now1]<arr2[now2],
则arr1在now1之前的项也不可能等于arr2[now2],
故可将now1+1。
反之同理。
*/
int main(){
int arr1[] = {0,1,2,3,4,5,6,7,8};
int arr2[] = {2,3,4,5,9};
int len1 = 9, len2 = 5;
for (int now1 = 0, now2 = 0; (now1 < len1) && (now2 < len2);){
if (arr1[now1] == arr2[now2]){
printf("%d ",arr1[now1]);
now1++;
now2++;
}
else if (arr1[now1] < arr2[now2])
now1++;
else
now2++;
}
printf("\n");
system("pause");
return 0;
}
原文:http://www.cnblogs.com/mutaohengheng/p/5108039.html