两个升序排列的数组,用一个for循环找出两个数组中相同元素的个数

LubinLew 2015-03-22 11:24:19
求思路

两个升序排列的数组,用一个for循环找出两个数组中相同元素的个数
...全文
412 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2015-03-22
  • 打赏
  • 举报
回复
for遍历第一个数组,每次遍历时又遍历第二个数组,看是否有相等 为了提高效率,遍历第二个数组时,如果发现当前遍历的数字已经大于第一个数组当前的数,则可退出循环
Falleyes 2015-03-22
  • 打赏
  • 举报
回复
for循环遍历第一个数组,然后每个元素和第二个数组的元素比较,比如指向A数组的指针pa,和指向B数组的指针pb。
for(pa=A.begin();pa!=A.end();){
   if(pb==B.end())
      break;
   if(*pa==*pb){
      ++count;
      ++pa;
      ++pb;
   }
   else if(*pa<pb){
      ++pa;
   }
   else
      ++pb;
   }
}
LubinLew 2015-03-22
  • 打赏
  • 举报
回复

#include <stdio.h>

#define ARRARY_SIZE (5)

int main(void)
{
	int count = 0;
	int a[ARRARY_SIZE] = {0, 1, 2, 3, 4};
	int b[ARRARY_SIZE] = {0, 1, 3, 5, 6};
	int* pa = a;
	int* pb = b;

	for(;pa != (a + ARRARY_SIZE);)
	{
		if (pb == (b + ARRARY_SIZE))
		{
			break;
		}

		if (*pa == *pb)
		{
		  count++;
		  pa++;
		  pb++;
		}
		else if(*pa < *pb)
		{
			pa++;
		}
		else
		{
			pb++;
	   }
	}

	printf("count = %d\n", count);

	return 0;
}

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧