Java教程

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

本文主要是介绍练习7-4 找出不是两个数组共有的元素 (20 分),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。
输出格式:
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。

输入样例:

10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1

输出样例:

3 5 -15 6 4 1
#include<stdio.h>
int main(void){
	int flag,count,temp;
	int n1,n2;
	int i,j,k;
	int a[20],b[20],c[40];
	count=0;
	k=0;
	scanf("%d",&n1);
	for(i=0;i<n1;i++)
	{
		scanf("%d",&a[i]);
	}
	scanf("%d",&n2);
	for(j=0;j<n2;j++)
	{
		scanf("%d",&b[j]);
	}
	for(i=0;i<n1;i++)
	{
		flag=0; 
		for(j=0;j<n2;j++)/*从a数组第一个数开始遍历比较b数组每一个数*/
		{
			if(a[i]==b[j])
            {
            	flag=1;  /*有相同的数则flag=1*/
            	break;
            }
	}
		if(flag==0)/*如果没有相同的数则flag依旧是0*/
		{
			temp=0;
			if(count==0)/*c数组中没有数,可以直接将不重复的数存进c[0]中*/
			c[count++]=a[i];/*count统计c中存了多少数,将不重复的数存进去后,count+1*/
			else{/*如果count!=0,就是说c数组中已经有数*/
			for(k=0;k<count;k++)/*遍历一遍c数组 与 a[i](不重复的数)比较*/
			{
				if(c[k]==a[i])
				{
					temp=1;/*如果相等则temp=1*/
                    break;
				}
			}
			if(temp==0)/*如果a[i]的值在c数组中没有出现过则temp依旧为0*/
			{
				c[count++]=a[i];/*因为a[i]的值没有出现在c数组中所以可以存入。避免重复存入*/
			}
			}
		}
	}
	for(i=0;i<n2;i++)
	{
		flag=0;
		for(j=0;j<n1;j++)
		{
			if(b[i]==a[j])
            {
            	flag=1;
            	break;
            }
		}
		if(flag==0)
		{
			temp=0;
			if(count==0)
			c[count++]=b[i];
			else{
			for(k=0;k<count;k++)
			{
				if(c[k]==b[i])
				{
					temp=1;
                    break;
				}
			}
			if(temp==0)
			{
				c[count++]=b[i];
			}
			}
		}
	}
	for(i=0;i<count;i++)
	{
		printf("%d",c[i]);
		if(i<count-1)/*格式要求最后一个数输出后没有空格,所以加个判断*/
		printf(" ");
	}
	return 0;
} 
这篇关于练习7-4 找出不是两个数组共有的元素 (20 分)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!