#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