练习7-4 找出不是两个数组共有的元素 (20分)

PTA

题目:
在这里插入图片描述
代码:

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a[20], b[20], c[20],flag=0;//这里flag做旗帜变量 
	int m, n, i, j, k=0;
	scanf("%d", &m);
	for(i=0; i<m; i++)
		scanf("%d", &a[i]);
	scanf("%d", &n);
	for(i=0; i<n; i++)
		scanf("%d", &b[i]);//对数组赋值 
	for(i=0; i<m; i++)
	{
		for(j=0; j<n; j++)
			if(a[i]==b[j])
				break;
		if(j>=n)
		{
			c[k]=a[i];
			k++;
			flag=1;
		}//将不重复的数字添加到c中 
	}
	for(i=0; i<n; i++)
	{
		for(j=0; j<m; j++)
			if(b[i]==a[j])
				break;
		if(j>=m)
		{
			c[k]=b[i];
			k++;
			flag=1;
		}
	}
	if(flag!=0)
	{
	printf("%d", c[0]);//这并没用考虑到完全相同的情况 
	for(i=1; i<k; i++)
	{
		for(j=0; j<i; j++)
			if(c[i]==c[j])
				break;
		if(j>=i)
			printf(" %d", c[i]);
	}
	}
	return 0;	
}

详解:

  1. 总体思路:先赋值,将a数组中不存在与b数组的元素填入c数组中,再将b数组中不存在于a数组中的元素填入c数组中,最后进行去重判断,同时要保留一种特殊情况即:两个数组完全相同。
  2. 判断特殊情况只需要一个旗帜变量flag即可很容易处理。除赋值外第一个大的for循环实现a数组的添加,第二个for循环实现b数组的添加。最后一个for循环实现判断去重。
    结果:
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值